Acest articol detaliază implementarea și utilizarea cursului valutar în modulul WHMCS e-Factura, oferind o soluție eficientă pentru facturarea în valută și conversia în RON, conform cerințelor fiscale.
Maparea Structurii MySQL pentru Cursul Valutar
Vă prezentăm cum să configurați modulul pentru a folosi structura MySQL existentă în WHMCS pentru gestionarea cursului valutar. Aceste imagini includ detalii despre cum să mapăm și să selectăm cursul pentru fiecare factură, fie bazat pe ID-ul facturii, fie pe data specifică.
Clasa PHP pentru Gestionarea Personalizată a Cursului Valutar
Vă oferim exemple practice pentru utilizarea clasei /lib/Services/CustomCurrencySystemService.php
, ce permite implementarea unor metode personalizate pentru calculul cursului valutar. Acest lucru oferă o flexibilitate maximă în gestionarea cursului în WHMCS pentru e-Factura.
IMPORTANT: Pentru a folosi metodele proprii, redenumiți /lib/Services/CustomCurrencySystemService.example.php din kitul modulului în /lib/Services/CustomCurrencySystemService.php
Metode PHP ce pot fi implementate în CustomCurrencySystemService
sunt definite în /lib/Services/CurrencySystemServiceInterface.php
:
getExchangeRateForInvoice($invoiceId, $tableName, $fields)
getExchangeRateForDate($date, $tableName, $fields)
getExchangeRateForCodeAndDate($date, $code, $tableName, $fields)
Exemplu implementare curs pentru Invoice Id
/lib/Services/CustomCurrencySystemService.php
public function getExchangeRateForInvoce($invoiceId, $tableName, $fields)
{
if (isset($fields['currency_field_invoice_id'], $fields['currency_field_value'])) {
$exchangeRateRecord = Capsule::table($tableName)->where([
[
$fields['currency_field_invoice_id'], '=', $invoiceId
]
])->first();
return (float) $exchangeRateRecord->{$fields['currency_field_value']};
}
return null;
}
Exemplu implementare curs pentru Invoice Date
/lib/Services/CustomCurrencySystemService.php
public function getExchangeRateForDate($date, $tableName, $fields)
{
if (isset($fields['currency_field_date'], $fields['currency_field_value'])) {
$exchangeRateRecord = Capsule::table($tableName)->where([
[
$fields['currency_field_date'], '<=', $date
]
])->orderBy($fields['currency_field_date'], 'desc')->first();
return (float) $exchangeRateRecord->{$fields['currency_field_value']};
}
return null;
}
Implementarea avansată a cursului valutar în modulul WHMCS e-Factura este esențială pentru facturarea în valută și asigură conformitatea fiscală la trimiterea facturilor în SPV eFactura.