Sistemul e-Factura, obligatoriu de la 1 Ianuarie 2024, necesită transmiterea valorii TVA în RON, chiar și pentru facturile emise în valută. Modulul nostru WHMCS e-Factura include funcționalități avansate pentru gestionarea acestei cerințe.
Maparea Structurii MySQL pentru Cursul Valutar
Am inclus în modul un sistem de mapare a tabelului de curs valutar și opțiuni de selectare a cursului bazate pe invoiceid, data sau valuă. Aceasta permite o integrare ușoară a cursului RON pentru facturile emise în valute precum EUR sau USD, asigurând corespondența cu versiunea PDF a facturii din WHMCS.
Vedeți exemple de mapare pentru diferite structuri de stocare a cursului:
Clasa PHP pentru Gestionarea Personalizată a Cursului Valutar
Modulul include clasa PHP CustomCurrencySystemService
, ce extinde CurrencySystemService
pentru a returna cursul valutar prin metoda proprie. Aceasta oferă flexibilitate maximă, permițând implementarea unor soluții personalizate, cum ar fi adăugarea unui procent suplimentar la cursul BNR.
Instrucțiuni de Utilizare
Această metodă presupune cunoștințe de PHP și de structură a softului WHMCS.
În directorul modulului e-Factura am inclus 2 fișiere ce vă ajută în utilizarea clasei CustomCurrencySystemService
:
/lib/Services/CurrencySystemServiceInterface.php /lib/Services/CustomCurrencySystemService.example.php
În clasa CurrencySystemServiceInterface
sunt definite metodele PHP ce pot fi implementate în CustomCurrencySystemService
și variabilele incluse în funcție de setările de mapare mysql:
getExchangeRateForInvoice()
– $invoiceId, $tableName, $fieldsgetExchangeRateForDate()
– $date, $tableName, $fieldsgetExchangeRateForCodeAndDate()
– $date, $code, $tableName, $fields
Clasa include metoda Capsule (WHMCS\Database\Capsule
) folosită în WHMCS pentru interacționarea cu baza de date mysql.
Exemple și Cazuri de Utilizare
Metodă ce folosește id-ul facturii
/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;
}
Metodă ce folosește data
Pentru a acoperii cât mai multe variante de implementare a facturilor fiscale, data facturii poate fi tblinvoices.date
sau tblinvoices.datepaid
în funcție de setările principale ale modulului e-Factura (Addons: Fireweb e-Factura > Settings > Fiscal invoice date ). Această selecție este importantă în funcție de setările WHMCS (Tax Configuration > VAT Settings : Set Invoice Date on Payment) și personalizările facturii PDF (invoicepdf.tpl).
/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;
}
Concluzie
Aceste funcționalități asigură o flexibilitate și precizie ridicată în gestionarea cursului valutar pentru facturile emise în valută, oferind utilizatorilor WHMCS soluții eficiente pentru conformitatea cu sistemul e-Factura.
Întrebări frecvente
Modulul permite configurarea mapării structurii MySQL a cursului valutar direct din setările acestuia. Aceasta înseamnă că puteți defini sursa cursului valutar (de exemplu, un tabel specific din baza de date) și criteriile de selectare a cursului (cum ar fi data emiterii facturii sau data plății). Această funcționalitate oferă o integrare flexibilă și automatizată a cursului de schimb în procesul trimitere către eFactura.
Puteți personaliza modulul prin clasa PHP CustomCurrencySystemService
, care permite să folosiți cod PHP pentru a returna cursul valutar bazat pe ID-ul fiecărei facturi, ajustându-l conform necesităților specifice.
Modulul WHMCS eFactura permite alegerea datei facturii fiscale prin setările sale. Puteți configura modulul astfel încât data facturii să fie bazată pe data emiterii facturii în WHMCS sau pe data plății efectuate de client. Aceasta asigură flexibilitate și conformitate cu cerințele de facturare specifice fiecărui business.