Prova la demo di vtiger 5.1 | Scarica la localizzazione in italiano | Chiedi consiglio ...
Partita IVA su vtiger CRM versione 5.1.0

Questo breve articolo vuole essere una semplice guida aggiornata rispetto all’ottimo articolo di Stefano Dolce scritto per la versione 5.0.4 di vTiger Standard, relativamente al problema dell’aggiunta delle informazioni di Partita IVA e Codice Fiscale all’interno del modulo Aziende (Account), che nella versione 5.1.0 di vTiger non risultano presenti subito dopo l’installazione.

Per prima cosa bisogna seguire la procedura di aggiunta dei Custom Field P.IVA e C.F., proprio come veniva descritto nel precedente articolo.
Nella nuova versione 5.1.0 è sufficiente andare sul menu Impostazioni --> Gestione modulo, cliccare sullo strumento di Impostazioni (il martello indicato in figura) per il modulo Aziende e successivamente, cliccare su Editor Layout:



Da questa schermata è possibile non solo aggiungere dei campi personalizzati, ordinarli e spostarli in base a come si vuole che vengano mostrati a video sulle schermate di raccolta dati semplicemente cliccando sulle frecce blu, ma è anche possibile aggiungere nuovi blocchi di informazioni personalizzate, in modo da rendere coerente anche logicamente le informazioni inserite.


Nel nostro caso, cliccare sul pulsante Aggiungi Blocco, e nel campo “Nome Blocco” inserire la dicitura Informazioni Fiscali e scegliere Informazioni Azienda nella casella a discesa chiamata “Dopo”.


Adesso grazie al pulsante +, è possibile ceare nel blocco appena aggiunto, le informazioni desiderate. Nel nostro caso possiamo inserire i campi P.IVA, C.F., Coordinate Bancarie e Banca di Riferimento. Si ricorda che il campo P.IVA e C.F. dovranno essere di tipo testuale scegliendo opportunamente la lunghezza dei
campi. I restanti campi aggiunti, non verranno visualizzati sui PDF di preventivi, ordini di vendita, fattura, ecc. ma serviranno semplicemente come informazioni aggiuntive utili durante la registrazione di molti clienti. Se lo ritenete opportuno, i campi Coordinate Bancarie e Banca di Riferimento possono essere spostati in un nuovo blocco chiamato ad esempio Informazioni bancarie.

Da ora in poi assumerò che avrete correttamente installato l’utility phpMyAdmin, che ci permetterà di visualizzare velocemente alcune informazioni necessarie per la modifica dei file di codice sorgente.

Dopo la fase di Login su phpMyAdmin, andiamo a visitare la tabella vtiger_accountscf per individuare il nome dei campi personalizzati aggiunti nel database durante le operazioni precedentemente eseguite dall’interfaccia grafica.

Dalla figura sottostante, si evince chiaramente che il campo P.IVA è stato nominato cf_541, il codice fiscale cf_542 mentre gli altri 2 campi personalizzati hanno codice cf_543 e cf_544. Il campo P.IVA è sicuramente il cf_541 perché durante la progettazione grafica, quest’ultimo è stato inserito per primo rispetto al codice fiscale.


Adesso bisogna modificare il codice sorgente per visualizzare i campi personalizzati sui vari PDF prodotti dai moduli di vTiger.
La struttura dei file e cartelle per fare questo compito, è un po’ cambiata rispetto alla versione precedente di vTiger.

Nella cartella /include della root di vTiger (ad esempio /var/www/html/vtiger510/include) troviamo il file InventoryPDF.php che è responsabile di recuperare tutti i valori relativi ai prodotti, l’IVA, la quantità e il prezzo unitario per poi effettuare i calcoli e passarli ai relativi file che si occuperanno di formattare questi valori nei PDF.

Per editare i file .PHP vi consiglio vivamente di utilizzare nano che è in grado di ricercare il testo agevolmente mediante la combinazione di tasti CTRL+W.
Tale file sorgente possiede le seguenti routine, il cui significato è auto esplicativo:

/**
 * Function to generate Invoice pdf
 */
function get_invoice_pdf()
/**
 * Function to generate PurchaseOrder pdf
 */
function get_po_pdf() {
/**
 * Function to generate SalesOrder pdf
 */
function get_so_pdf() {
/**
 * Function to generate Quote pdf
 */
function get_quote_pdf() {


Tralasciando soltanto la routine get_po_pdf(), per ciascuna delle altre, è necessario inserire il codice PHP che va a recuperare i campi personalizzati dal DB. In ciascuna routine eseguite la ricerca delle seguenti righe di codice (CTRL+W):

$ship_country = $focus->column_fields["ship_country"];
$conditions = from_html($focus->column_fields["terms_conditions"]);

Fra queste 2 righe di codice, adesso bisogna inserire il seguente codice PHP:

// MODIFICA PER PIVA E CF SU AZIENDE
$accountid=$focus->column_fields["account_id"];
$custom_field="SELECT cf_541,cf_542 FROM vtiger_accountscf WHERE accountid=$accountid";
$custominfo=mysql_query($custom_field);
while($rullo=mysql_fetch_array($custominfo))
{
     $piva=$rullo['cf_541'];
     $cf=$rullo['cf_542'];
}
// FINE MODIFICA


Questo codice non fa altro che eseguire una Query sul DB per recuperare i campi personalizzati e li assegna alle variabili $piva e $cf.

Bisogna ricordare che i campi cf_541 e cf_542 potrebbero essere chiamati diversamente all’interno del proprio DB.

Questo codice risulta identico per tutte le routine. Chi vuole può anche creare un’apposita routine per recuperare qualsiasi campo personalizzato in modo molto semplice.

Adesso possiamo passare a modificare i file relativi alla visualizzazione su PDF di tutte le informazioni calcolate da InventoryPDF.php.

Nella versione 5.1.0 di vTiger, ogni PDF contiene 2 pagine. Entrambe le pagine sono costruite mediante 3 file .PHP:

- Intestazione (header.php): contiene il numero di documento, il tipo, l’azienda destinataria, il contatto dell’azienda, l’indirizzo di spedizione, ecc.;
- Un corpo (body.php): contiene codice articolo, descrizione, quantità, IVA, totale imponibile e poi tutti i totali;
- Un piè di pagina (footer.php): contiene la descrizione del documento e i termini e le condizioni.

Il corpo è identico per tutti i moduli di vTiger (solo per la prima pagina del PDF).

Se si vuole modificare qualcosa sul corpo bisogna agire sul file contenuto nella seguente cartella:

/include/tcpdf/templates/body.php

Alla riga 93 modificare come segue:

$lineData=array("105",$bottom+37,"94");

Alla riga 95 di questo file, possiamo cambiare ad esempio la dicitura Totale Netto con Imponibile con questo codice:

$data= "Imponibile:";
//$data= $app_strings['LBL_NET_TOTAL'].":";


Alla riga 99 modificare come segue:

$pdf->MultiCell(170, 4, $data);

Per evitare una formattazione scorretta, alla riga 117 è possibile modificare la riga con la seguente:

$pdf->MultiCell(30, 4, $data); // SE IL PRIMO VALORE FOSSE 105 LA PERCENTUALE DI SCONTO ANDREBBE A COPRIRE IL VALORE NUMERICO SUL PDF

Alla riga 126 possiamo cambiare la dicitura TAX con la più corretta dicitura IVA per l’italia cambiando il codice nel seguente modo:

//$data= $app_strings['LBL_TAX'].": ($group_total_tax_percent %)";
$data= "IVA ($group_total_tax_percent%):";


Alla riga 142 modificare la riga nel modo seguente per evitare una cattiva formattazione del testo:

$pdf->MultiCell(35, 4, $data); // SE IL PRIMO VALORE FOSSE 50 LA STRINGA VERREBBE FORMATTATA MALE SUL PDF

Alla riga 154 modificare come segue:

$data= "Imponibile: ";
//$data= $app_strings['LBL_NET_TOTAL'].":";


Alla riga 158 modificare come segue:

$pdf->MultiCell(170, 4, $data);

Dopo questi piccoli cambiamenti al file del corpo dei PDF, passiamo a modificare intestazione e piè di pagina per ciascun modulo vTiger.

Nella cartella /modules esistono le seguenti cartelle:

- Quotes (preventivi);
- PurchaseOrder (ordini di acquisto);
- SalesOrder (ordini di vendita);
- Invoice (fatture).

In ciascuna di queste cartelle c’è la cartella pdf_templates che contiene i seguenti file e cartelle:

- footer.php: il piè di pagina della prima pagina del PDF prodotto da ciascun modulo vTiger;- header.php: l’intestazione della prima pagina del PDF prodotto da ciascun modulo vTiger;
- lastpage/: la cartella che contiene il corpo (body.php) e piè di pagina (footer.php) della seconda pagina del PDF prodotto da ciascun modulo vTiger.

Nel file header.php della cartella pdf_templates (prima pagina del PDF), possiamo inserire la Partita IVA e il codice fiscale dopo la riga 56:

$shipText .= "P.IVA: ".$piva."\n";
$shipText .= "C.F.: ".$cf."\n";


cambiare la riga 82 nel modo seguente:

//$pdf->addRecBlock(getDisplayDate(date("Y-m-d")), $app_strings["Issue Date"],$issueBlock); // La stringa Issue Data viene tradotta erroneamente

$pdf->addRecBlock(getDisplayDate(date("Y-m-d")), "Data di Emissione",$issueBlock);


Nella cartella lastpage possiamo agire sui file body.php e footer.php per aggiungere o rimuovere tutto quello che vogliamo. Nel footer.php possiamo aggiungere ancora i dati di P.IVA e C.F. per completezza di informazioni:

Dopo la riga 45 aggiungere il seguente codice:

$billText .= "P.IVA: ".$piva."\n";
$billText .= "C.F.: ".$cf."\n";


Alla riga 62 la variabile $blockText contiene il testo del blocco Istruzioni che potete cambiare in questo modo:

//$blockText=$app_strings["Detach_Info"];
$blockText="Per accettazione timbrare, firmare e restituire a mezzo fax";


Queste modifiche vanno eseguite in ciascun file header.php, footer.php e body.php delle rispettive cartelle di vTiger elencate precedentemente e relative ai moduli contabili.

Massimiliano Iavazzo
Telecomunicazioni Digitali s.r.l.
http://www.telco?digit.com
http://www.air2connect.net