fbpx

Implementarea Cursului Valutar pentru Facturarea în Valută în Modulul WHMCS e-Factura

Cuprins Articol
    Add a header to begin generating the table of contents

    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:

    Curs stocat cu invoiceid
    Curs stocat cu dată și valută
    Curs stocat cu dată

    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, $fields
    • getExchangeRateForDate() – $date, $tableName, $fields
    • getExchangeRateForCodeAndDate() – $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.