Preferenze di fatturazione

Preferenze di fatturazione

Indietro   Pubblicato 1 settembre 2018 / Aggiornato 29 novembre 2020
Tempo di lettura 5 minuti

Modalità di fatturazione

Billing Extension offre 3 nuove modalità di fatturazione:

Se non vuoi utilizzare queste modalità, puoi tranquillamente lasciare selezionata la modalità Legacy che corrisponde alla fatturazione standard di WHMCS. Tieni presente che tali modalità possono essere utilizzate simultaneamente. Ad esempio puoi utilizzare OneInvoice per il cliente X, OnePayment per Y, Manual per Z ed utilizzare Legacy per tutti gli altri clienti.

Snapshot

In linea con le regole fiscali, i dati personali dei clienti e i loro custom field (per esempio la partite IVA) vengono registrati e salvati al momento della creazione della fattura o della proforma. WHMCS ha già una funzionalità simile pensata per questo scopo ma non è ideale da utilizzare. Per prima cosa WHMCS non immagazzina tutte le informazioni e non c'è modo di modificarle. Billing Extension invece salva tutto il necessario:

Abbiamo aggiunto anche un'interfaccia da cui gli amministratori possono facilmente modificare gli snapshot e confrontarli con i valori live. Questa interfaccia è integrata direttamente in ogni proforma, fattura o nota di credito e può essere utilzzata per fare uno snapshot manuale.

 
Ora che conosci tutti gli aspetti del modulo, possiamo parlare delle differenze tra le opzioni Creazione Fattura e Creazione Proforma. La prima crea uno shapshot quando la fattura viene emessa, mentre la seconda non appena si genera la proforma. Idealmente bisognerebbe usare la prima opzione in modo che il cliente possa aggiornare i propri dati personali nel caso si accorgesse di errori di inseirmento. Le sue modifiche avranno effetto immediato su tutte le proforma aperte senza bisogno di aprire ticket.

Tassi di cambio valuta

WHMCS permette la vendita in più valute ed aggiorna automaticamente i tassi di cambio in vigore tuttavia non tiene in memoria l'andamento dei tassi nel corso del tempo. Questo è un problema in quanto per le fatture emesse in valute diverse da quella predefinita dovrebbe essere sempre indicato il tasso di cambio applicato. Facciamo un esempio.

Una fattura di 100 euro viene emessa il primo gennaio quando il tasso di cambio USD/EUR è 1.12. Il cliente la contabilizza il 7 di aprile quando il tasso è diventato 1.09. C'è una differenza di circa 3 euro tra gennaio e aprile.

In genere sono i commercialisti dei tuoi clienti a doversi occupare della variazione dei tassi tuttavia puoi rendere le cose molto più semplici grazie a Billing Extension. Il modulo memorizza i tassi di cambio in vigore ogni giorno in modo da poter inidcare in fattura il tasso applicato come visibile nella seguente immagine (angolo in alto a destra).

Nel caso volessi personalizzare l'aspetto della fattura affinché indichi i prezzi in altre valute, puoi utilizzare il seguente array che è disponibile sia su viewinvoice.tpl (versione HTML) che su invoicepdf.tpl (PDF). In basso c'è un esempio basato su un WHMCS che utilizza le valute USD (predefinita), GBP e AUD.

Tutti gli importi della fattura sono inclusi nell'array per permetterti di mostrare ciascun valore in qualsiasi valuta. Se l'array è vuoto significa che non ci sono tassi di cambio disponibili nella data di emissione della fattura. Ora faccio un esempio. Ecco come mostrare il Totale in tutte le valute su viewinvoice.tpl.

Supponiamo di voler mostrare il valore in AUD al fianco di ogni voce fattura. Il codice è leggermente diverso in quanto dobbiamo iterare l'array ma non è così complicato.

Per quanto riguarda invoicepdf.tpl, funziona tutto allo stesso modo. L'unica differenza è che per accedere $bx_currencies dovrai adoperare la sintassi PHP anziché quella Smarty. Ad esempio {$bx_currencies.GBP.total} in PHP diventa $bx_currencies['GBP']['total']. Per evitare confusione qui in basso abbiamo "convertito" in PHP l'esempio appena mostrato per le voci fattura.

Tax ID di WHMCS

A partire dalla versione 7.7 di WHMCS rilasciata il 13 febbraio 2019, c'è un nuovo campo chiamato Tax ID utilizzato per memorizzare il Tax ID del cliente (partita IVA o codice fiscale). Ci sono voluti più di 10 anni per vedere la sua introduzione in WHMCS ma abbiamo preso la decisione di non utilizzarlo ai fini della fatturazione per le seguenti ragioni:

  • Billing Extension già gestisce il Tax ID dal 2014
  • Il VIES integrato in WHMCS presenta difetti e non è completo
  • Di tanto in tanto WHMCS prende decisioni inspiegabili che potrebbero compromettere la corretta fatturazione nel caso in cui venga coinvolto il Tax ID
  • L'idea di basare cose come l'ABN o la fatturazione elettronica su un campo che WHMCS potrebbe modificare senza preavviso è spaventosa

Ciò detto, per le aziende Europee ed Australiane continueremo ad affidarci ad un Client Custom Field per quanto concerne il Tax ID. Il Tax ID standard di WHMCS verrà utilizzato solo per gli altri paesi.

Soppressione fatture

Questa funzionalità può essere utile per ridurre il numero di fatture facendoti risparmaire ore di lavoro e denaro. In certi casi WHMCS crea fatture a importo zero. Ciò succede anche quando i clienti ordinano servizi gratuiti, utilizzano codici sconto del 100% oppure pagano una fattura interamente con credito utente. Nella maggior parte dei paesi tutte queste fatture possono essere soppresse dato che non sussistono pagamenti. Prima di abilitare una qualsiasi di queste funzionalità, ti consigliamo di consultare il tuo commercialista.

 
Oltre ad evitare l'emissione di fatture obsolete, a partire dalla versione 2.2.56 è disponibile un'opzione, l'Anti-Fraud, che consente di posticipare l'emissione delle fatture per i nuovi clienti. Ciò è particolarmente utile per impedire che WHMCS emetta fatture per ordini fraudolenti. Tali ordini infatti possono dare luogo ad un gran numero di fatture che devono essere registrate e annullate mediante l'emissione di altrettante di note di credito. È un'attività frustrante che complica il lavoro amministrativo e che nel lungo periodo potrebbe persino essere considerata sospetta dalle Autorità.

Quando l'Anti-frode è attivo i nuovi clienti (quelli ai quali non è stata emessa ancora alcuna fattura) non ricevono alcuna fattura anche quando si utilizzano metodi di pagamento immediati come PayPal o carta di credito. Billing Extension sposta temporaneamente i pagamenti nella pagina Fatturazione da dove è possibile generare le fatture manualmente quando è stata verificata la regolarità dell'ordine. L'Anti-Fraud non si applica sui clienti già registrati e su quelli che sono già stati verificati in precedenza.

Notifica soppressione

Quando una fattura viene soppressa, Billing Extension sopprime anche l'invio delle eventuali notifiche email ad essa collegate al fine di evitare confusione nei clienti che altrimenti riceverebbero notifiche riguardanti fatture che non esistono più.

Se vuoi comunque inviare una notifica, il modulo ti consente di scegliere quale inviare tra gli Email Template disponibili. Puoi anche creare un Email Template personalizzato (la categoria deve essere General). In entrambi i casi nel template puoi utilizzare le variabili descritte in basso.

{$suppress_reason} contiene il motivo per il quale la fattura è stata soppressa. Nel momento in cui scriviamo, può assumere i seguenti valori:

  • FullDiscount quando uno sconto del 100% è applicato alla fattura ed hai scelto di sopprimerla
  • NoAmount quando la fattura è a importo zero ed hai scelto di sopprimerla
  • FullCredit quando la fattura è saldata interamente con credito ed hai scelto di sopprimerla
  • AddFunds quando la fattura è una ricarica credito ed hai scelto di sopprimerla
  • OneInvoice quando OneInvoice è in uso

L'altra variabile utilizzable è {$suppress_invoice} che assume i seguenti valori:

  • Skip quando a seconda delle tue impostazioni la generazione della fattura non è necessaria
  • No quando la generazione della fattura è stata rimandata ad un momento successivo (es. OneInvoice)
Utilizza le variabili fornite per mostrare messaggi personalizzati nelle email utilizzando semplici condizioni "if" di Smarty.

Pagamenti in eccesso

Potrebbe sembrare che i pagamenti in eccesso siano un'eventualità rara ma in realtà si verificano piuttosto di frequente. A volte i clienti dimenticano di aver già pagato o di avere attivo un pagamento automatico con PayPal. Altre volte pur avendo distetto i servizi dimenticano di eliminare le sottoscrizioni per i pagamenti automatici. Quando si verificano questi episodi WHMCS non li gestisce in modo corretto.

In primo luogo il pagamento in eccesso viene registrato nella fattura già emessa. Ciò significa che una fattura dell'anno scorso potrebbe essere spostata all'anno corrente causando evidenti errori di fatturazione. Questa disfunzione tra l'altro può ripetersi ad ogni ulteriore pagamento in eccesso.

In secondo luogo WHMCS converte il pagamento in eccesso in credito utente. Il principio sarebbe anche corretto ma purtroppo questa "conversione" non lascia traccia ed è basata su un calcolo errato delle tasse e degli importi. Scopriamo come questa funzione di Billing Extension può venirti in aiuto.

Poniamo che ci sia una proforma da 10 euro. Lo scenario più comune è che il cliente invia il pagamento che porta la proforma a diventare fattura. Successivamente arriva un secondo pagamento non dovuto che viene registrato su una nuova fattura che lascia intatta quella originaria. Di seguito un'anteprima della nuova fattura creata. Si noti tra le parentesi il riferimento alla fattura di originaria.



L'altro scenario possibile è che il cliente paga da subito la proforma con un pagamento in eccesso. In questo caso non c'è bisogno di creare una nuova fattura. Il modulo aggiorna la proforma pagata in eccesso prima che sia convertita in fattura, aggiungendo una nuova voce.



Sottolineiamo che i pagamenti in eccesso possono essere tassati a seconda delle regole di tassazione. Inoltre se applichi le tasse sulle fatture di ricarica credito, Billing Extension si assicura che il cliente riceva nel suo bilancio credito l'importo corretto (al netto delle tasse).

Visualizzazione tasse

WHMCS mostra la riga delle tasse in fattura solo quando il valore è maggiore di zero. In alcuni paesi la legge impone che questa voce sia sempre visibile in fattura, anche quando l'importo delle tasse è pari a zero. Se sei in uno di questi paesi, attiva questa opzione.

Numeri di riferimento

Per una serie di ragioni (es. OneInvoiceBilling Extension potrebbe sopprimere l'emissione delle fatture per generarle separatamente in un secondo momento. Quando ciò si verifica, diciamo che la fattura è stata soppressa.

Sebbene si tratti di un procedimento assolutamente normale, i clienti potrebbero avere qualche difficoltà non avendo più i riferimenti delle proforma originarie. La funzione Numeri di riferimento si occupa proprio di questo facendo in modo che le voci fattura matengano il riferimento al numero originario della proforma come visibile nell'esempio qui in basso.



Il numero di riferimento è disponibile anche sulle fatture e le note di credito standard utilizzando le seguenti variabili:
  • Per viewinvoice.tpl {$reference_proformanum}
  • Per invoicepdf.tpl $reference_proformanum
In questo modo i clienti possono vedere il numero di riferimento direttamente in fattura. Nell'esempio in basso puoi vedere come appare sul PDF (sinistra) e sulla versione HTML della fattura (destra).



Tieni presente che il numero di riferimento è presente solo sulle fatture e le note di credito dal momento che non avrebbe senso mostrarlo sulle proforma. Il testo multi-lingua può essere personalizzato effettuando l'overriding della seguente variabile della lingua.

$_ADDONLANG['hook']['clientsdetails']['invoice']['referencenum'] = '(Proforma #%proformanum)';

Comprendiamo che la modifica di invoicepdf.tpl è difficoltosa in quanto che utilizza la sintassi TCPDF pertanto ti mostriamo come ottenere il seguente risultato.



Questo è lo snippet completo da utilizzare subito dopo la sezione Invoice Header.

$pdf->SetFont($pdfFont, 'B', 15);
$pdf->SetFillColor(239);
$pdf->Cell(0, 8, $pagetitle, 0, 0, 'L', '1');
$pdf->SetFont($pdfFont, '', 8);
$pdf->Cell(0, 6, $reference_proformanum, 0, 0, 'R', '1');
$pdf->Ln(8);

Reset numerazione fatture

Diciamolo chiaramente. Molti di noi spesso dimenticano di resettare la numerazione delle fatture all'inizio dell'anno fiscale. Per molti anni consecutivi WHMCS ha cercato di aiutarci rilasciando piccoli script e moduli, che purtroppo hanno raramente fatto il loro dovere. La nostra funzionalità risolve finalmente il problema. Resetta non solo la numerazione delle fatture,  ma anche delle note di credito (se in uso). Detto ciò, questo strumento necessita che il cron giornaliero si esegua tutti i giorni a mezzanotte (00:00 in punto).

Commenti (0)

Dì ciò che pensi Cancella Risposta