Jump to content

Telefono, codice fiscale e P. IVA in fattura [how to]


viger

Recommended Posts

Ciao a tutti,

riporto qui la mia procedura per aggiungere in maniera chiara il telefono (o i telefoni), il codice fiscale e/o la P. IVA in fattura.

Ho testato il tutto su una installazione pulita e funziona. Faccio riferimento alla versione 1.6.1.4

 

  1. nel BO settare la nazione Italia in questo modo (non aggiungere la voce "dni" all'elenco!)
    post-408444-0-86377000-1473588233_thumb.png
  2. aprire il file /classes/pdf/HTMLTemplateInvoice.php
    cercare (circa riga 318):
            $data = array(
                'order' => $this->order,
                'order_invoice' => $this->order_invoice,
                'order_details' => $order_details,
                'cart_rules' => $cart_rules,
                'delivery_address' => $formatted_delivery_address,
                'invoice_address' => $formatted_invoice_address,
                'addresses' => array('invoice' => $invoice_address, 'delivery' => $delivery_address),
                'tax_excluded_display' => $tax_excluded_display,
                'display_product_images' => $display_product_images,
                'layout' => $layout,
                'tax_tab' => $this->getTaxTabContent(),
                'customer' => $customer,
                'footer' => $footer,
                'ps_price_compute_precision' => _PS_PRICE_COMPUTE_PRECISION_,
                'round_type' => $round_type,
                'legal_free_text' => $legal_free_text,
            );
    

    modificarlo in:

            $data = array(
                'order' => $this->order,
                'order_invoice' => $this->order_invoice,
                'order_details' => $order_details,
                'cart_rules' => $cart_rules,
                'delivery_address' => $formatted_delivery_address,
                'invoice_address' => $formatted_invoice_address,
                'addresses' => array('invoice' => $invoice_address, 'delivery' => $delivery_address),
                'tax_excluded_display' => $tax_excluded_display,
                'display_product_images' => $display_product_images,
                'layout' => $layout,
                'tax_tab' => $this->getTaxTabContent(),
                'customer' => $customer,
                'footer' => $footer,
                'ps_price_compute_precision' => _PS_PRICE_COMPUTE_PRECISION_,
                'round_type' => $round_type,
                'legal_free_text' => $legal_free_text,
                'indni_value' => $invoice_address->dni,
                'invat_value' => $invoice_address->vat_number,
                'phone_value' => $invoice_address->phone,
                'm_phone_value' => $invoice_address->phone_mobile
            );
    
  3. aprire il file /pdf/invoice.addresses-tab.tpl
    cercare (circa riga 31)

    				{$delivery_address}
    			{/if}
    		</td>
    		<td width="33%"><span class="bold">{l s='Billing Address' pdf='true'}</span><br/><br/>
    				{$invoice_address}
    		</td>
    

    modificarlo in:

    				{$delivery_address}
    				{if $phone_value}<br />tel: {$phone_value}{/if}
    				{if $m_phone_value}<br />mob: {$m_phone_value}{/if}
    			{/if}
    		</td>
    		<td width="33%"><span class="bold">{l s='Billing Address' pdf='true'}</span><br/><br/>
    				{$invoice_address}
    				{if $invat_value}<br />P.IVA: {$invat_value}{/if}
    				{if $indni_value}<br />CF: {$indni_value}{/if}
    		</td>
  4. salvare tutto, chiudere, pulire la cache e fare un po' di ordini di prova.

Ovviamente per le nazioni dove il CF non sia obbligatorio il campo non apparirà, così come non apparirà il campo telefono ove questo sia vuoto (se il cliente mette solo il mobile apparirà solo quello, ecc).

Queste alcune fatture di test:

 

Italia tel fisso, tel mobile, CF e P.IVA:

post-408444-0-95870200-1473860796_thumb.png

 

Italia tel fisso, tel mobile, CF:

post-408444-0-52539500-1473860798_thumb.png

 

Italia tel mobile, CF:

post-408444-0-76189700-1473860799_thumb.png

 

Italia tel fisso, CF:

post-408444-0-89525000-1473860800_thumb.png

 

Regno Unito tel fisso:

post-408444-0-30400200-1473860802_thumb.png

 

 

Spero sia utile!  :)

Edited by viger (see edit history)
Link to comment
Share on other sites

  • 4 months later...

Grazie per la guida, utilissima!

Ho fatto le modifiche indicate, quando genero la fattura però mi ritrovo con i campi sdoppiati, uno correttamente con la sigla (es: Tel) e l'altro solo con il numero?

Come posso risolvere?

 

Esempio:

MARIO ROSSI

PALLINO SRL

046573823

Via Mazzini 8

Roma

Italia

3496774071

P.IVA: 046573823

Cell: 3496774071

Link to comment
Share on other sites

  • 2 months later...

La soluzione sembra essere quella giusta anche per il mio caso ma non ne sono certo.

 

Il problema che ho riscontrato con le impostazioni attualmente settate sul mio store Prestashop è questo.

Se il cliente è un privato nessuna particolare problematica: compila i campi obbligatori (tra cui anche il codice fiscale) e in fattura questi appaiono più o meno correttamente.

 

Se invece si tratta di un'azienda o comunque di una partita iva le cose cambiano: il fatto di dover inserire obbligatoriamente nome, cognome e codice fiscale di una persona fisica oltre alle voci "Azienda" e "Partita Iva", crea un problema in fatturazione, nel senso che il nome della persona fisica e il suo codice fiscale vengono pubblicati insieme a quelli dell'azienda.

 

Non capisco bene la logica di questa situazione e le eventuali soluzioni...

 

Se qualcuno potesse darmi una informazione in merito sarebbe fantastico, anche perchè sembra essere una questione abbastanza dibattuta con Prestashop (e non solo).

 

Ovviamente sono disponibile anche a sostenere eventuali costi per una eventuale consulenza in grado di risolvere il problema.

GRAZIE

Link to comment
Share on other sites

  • 8 months later...
On 28/1/2017 at 4:39 PM, Bluenight26 said:

Grazie per la guida, utilissima!

Ho fatto le modifiche indicate, quando genero la fattura però mi ritrovo con i campi sdoppiati, uno correttamente con la sigla (es: Tel) e l'altro solo con il numero?

Come posso risolvere?

 

Esempio:

MARIO ROSSI

PALLINO SRL

046573823

Via Mazzini 8

Roma

Italia

3496774071

P.IVA: 046573823

Cell: 3496774071

stesso problema hai per caso risolto?

grazie

Link to comment
Share on other sites

Ciao, scusate il ritardo della risposta, ma non seguo più tanto il forum, poco tempo e il mio shop ora che funziona benone non lo tocco più! B)

Circa la fattura, la modifica a me funziona molto bene.

Avete la versione 1.6.1.4? Perché per questa è testata, per le altre non so.

Avete fatto tutto ciò che è descritto alla lettera? Perché ho controllato e questo è il risultato della fattura appena emessa nel mio shop di prova in locale:

screen1.png.fd0b9b7b537f54a622613eb995a0f671.png

 

Link to comment
Share on other sites

On 24/1/2018 at 10:09 PM, morando said:

riprovato, sulla 1.7 mi sdoppia i dati come già descritto

 

Beh, come chiaramente scritto nel post di apertura, la modifica è per la 1.6.1.4, per le altre, specie per un major update come la 1.7 è ovvio che non funzioni...

Comunque, per il vostro (e mio) diletto, mi sono divertito a trovare la soluzione anche per la 1.7.2.4, la ultima versione al momento scaricabile. Le modifiche qui di seguito proposte fanno fede alla versione out-of-the-box e solo per la fattura, la correzione dell'indirizzo per resi, bolle, ecc non è contemplata, ma non credo sia cosa impossibile.

Questa la fattura standard di PS:

screen_1.png.4b3f99336c3530395b494d19a9ec8312.png

Questa quella modificata (vanno tradotte le voci):

screen_2.png.2d09bc4adf9b518b8ab6a6aea66429ae.png

 

Per le modifiche:

- aprire il file /classes/pdf/HTMLTemplateInvoice.php

- dopo la riga 314:

        $layout = $this->computeLayout(array('has_discount' => $has_discount));

inserire queste righe:

        $state_invo = (new State($invoice_address->id_state))->name; /* Get invoice State name from ID */
        $state_deli = (new State($delivery_address->id_state))->name; /* Get delivery State name from ID */

- dopo la riga 339 (legal_free_text):

            'ps_price_compute_precision' => _PS_PRICE_COMPUTE_PRECISION_,
            'round_type' => $round_type,
            'legal_free_text' => $legal_free_text,

aggiungere queste righe:

            /* Start mod for custom address format */
            'firstname_invo' => $invoice_address->firstname,
            'lastname_invo' => $invoice_address->lastname,
            'company_invo' => $invoice_address->company,
            'address1_invo' => $invoice_address->address1,
            'address2_invo' => $invoice_address->address2,
            'postcode_invo' => $invoice_address->postcode,
            'city_invo' => $invoice_address->city,
            'state_name_invo' => $state_invo,
            'country_name_invo' => $invoice_address->country,
            'phone_invo' => $invoice_address->phone,
            'phone_mobile_invo' => $invoice_address->phone_mobile,
            'vat_number_invo' => $invoice_address->vat_number,
            'dni_invo' => $invoice_address->dni,

            'firstname_deli' => $delivery_address->firstname,
            'lastname_deli' => $delivery_address->lastname,
            'company_deli' => $delivery_address->company,
            'address1_deli' => $delivery_address->address1,
            'address2_deli' => $delivery_address->address2,
            'postcode_deli' => $delivery_address->postcode,
            'city_deli' => $delivery_address->city,
            'state_name_deli' => $state_deli,
            'country_name_deli' => $delivery_address->country,
            'phone_deli' => $delivery_address->phone,
            'phone_mobile_deli' => $delivery_address->phone_mobile,
            /* End mod for custom address format */

 

- aprire il file /pdf/invoice.addresses-tab.tpl

- cercare la riga 28:

				{$delivery_address}

e sostituirla con:

				{l s='Name Surname' d='Shop.Pdf' pdf='true'}: {$firstname_deli} {$lastname_deli}<br />
				{if $company_deli}{l s='Company' d='Shop.Pdf' pdf='true'}: {$company_deli}<br />{/if}
				{l s='Address' d='Shop.Pdf' pdf='true'}: {$address1_deli}<br />
				{if $address2_deli}{l s='Address' d='Shop.Pdf' pdf='true'}: {$address2_deli}<br />{/if}
				{l s='ZIP Code' d='Shop.Pdf' pdf='true'}: {$postcode_deli}<br />
				{l s='City' d='Shop.Pdf' pdf='true'}: {$city_deli}<br />
				{if $state_name_deli}{l s='State' d='Shop.Pdf' pdf='true'}: {$state_name_deli}<br />{/if}
				{l s='Country' d='Shop.Pdf' pdf='true'}: {$country_name_deli}<br />
				{if $phone_deli}{l s='Phone' d='Shop.Pdf' pdf='true'}: {$phone_deli}<br />{/if}
				{if $phone_mobile_deli}{l s='Mobile' d='Shop.Pdf' pdf='true'}: {$phone_mobile_deli}<br />{/if}

- al posto della riga:

				{$invoice_address}

incollare queste righe:

				{l s='Name Surname' d='Shop.Pdf' pdf='true'}: {$firstname_invo} {$lastname_invo}<br />
				{if $company_invo}{l s='Company' d='Shop.Pdf' pdf='true'}: {$company_invo}<br />{/if}
				{l s='Address' d='Shop.Pdf' pdf='true'}: {$address1_invo}<br />
				{if $address2_invo}{l s='Address' d='Shop.Pdf' pdf='true'}: {$address2_invo}<br />{/if}
				{l s='ZIP Code' d='Shop.Pdf' pdf='true'}: {$postcode_invo}<br />
				{l s='City' d='Shop.Pdf' pdf='true'}: {$city_invo}<br />
				{if $state_name_invo}{l s='State' d='Shop.Pdf' pdf='true'}: {$state_name_invo}<br />{/if}
				{l s='Country' d='Shop.Pdf' pdf='true'}: {$country_name_invo}<br />
				{if $phone_invo}{l s='Phone' d='Shop.Pdf' pdf='true'}: {$phone_invo}<br />{/if}
				{if $phone_mobile_invo}{l s='Mobile' d='Shop.Pdf' pdf='true'}: {$phone_mobile_invo}<br />{/if}
				{if $vat_number_invo}{l s='VAT' d='Shop.Pdf' pdf='true'}: {$vat_number_invo}<br />{/if}
				{if $dni_invo}{l s='DNI' d='Shop.Pdf' pdf='true'}: {$dni_invo}<br />{/if}

 

Salvare, cancellare la cache e fare un ordine di prova.

Le voci vanno tradotte dall'inglese nel BO e sono comunque facilmente personalizzabili, così come il loro ordine. Fate sempre un backup dei file prima di metterci mano e se qualcosa non va o volete modificarlo, fatemi sapere. Ovviamente, in caso di upgrade dello shop, le modifiche andranno rifatte.

Tutto questo a vostro rischio e pericolo! :D

Edited by viger (see edit history)
  • Thanks 1
Link to comment
Share on other sites

le traduzioni delle altre parole della fattura le ho fatte da:

internazionale>traduzioni

traduzioni dei temi>classic>italiano

espandi fino a:

shop>pdf

ma queste non le trovo

eventualemte possiamo mettere le parole in Italiano sul file pdf/invoice.addresses-tab.tpl ??

Link to comment
Share on other sites

Ho corretto la mod, c'era un bug nella provincia di spedizione. Ricontrollate le modifiche, ho corretto le righe da incollare. Ad ogni modo, al posto di 

        $state = (new State($invoice_address->id_state))->name; /* Get State name from ID */

dovete incollare

        $state_invo = (new State($invoice_address->id_state))->name; /* Get invoice State name from ID */
        $state_deli = (new State($delivery_address->id_state))->name; /* Get delivery State name from ID */

e al posto di 

            /* Start mod for custom address format */
            'firstname_invo' => $invoice_address->firstname,
            'lastname_invo' => $invoice_address->lastname,
            'company_invo' => $invoice_address->company,
            'address1_invo' => $invoice_address->address1,
            'address2_invo' => $invoice_address->address2,
            'postcode_invo' => $invoice_address->postcode,
            'city_invo' => $invoice_address->city,
            'state_name_invo' => $state,
            'country_name_invo' => $invoice_address->country,
            'phone_invo' => $invoice_address->phone,
            'phone_mobile_invo' => $invoice_address->phone_mobile,
            'vat_number_invo' => $invoice_address->vat_number,
            'dni_invo' => $invoice_address->dni,

            'firstname_deli' => $delivery_address->firstname,
            'lastname_deli' => $delivery_address->lastname,
            'company_deli' => $delivery_address->company,
            'address1_deli' => $delivery_address->address1,
            'address2_deli' => $delivery_address->address2,
            'postcode_deli' => $delivery_address->postcode,
            'city_deli' => $delivery_address->city,
            'state_name_deli' => $state,
            'country_name_deli' => $delivery_address->country,
            'phone_deli' => $delivery_address->phone,
            'phone_mobile_deli' => $delivery_address->phone_mobile,
            /* End mod for custom address format */

dovete incollare

            /* Start mod for custom address format */
            'firstname_invo' => $invoice_address->firstname,
            'lastname_invo' => $invoice_address->lastname,
            'company_invo' => $invoice_address->company,
            'address1_invo' => $invoice_address->address1,
            'address2_invo' => $invoice_address->address2,
            'postcode_invo' => $invoice_address->postcode,
            'city_invo' => $invoice_address->city,
            'state_name_invo' => $state_invo,
            'country_name_invo' => $invoice_address->country,
            'phone_invo' => $invoice_address->phone,
            'phone_mobile_invo' => $invoice_address->phone_mobile,
            'vat_number_invo' => $invoice_address->vat_number,
            'dni_invo' => $invoice_address->dni,

            'firstname_deli' => $delivery_address->firstname,
            'lastname_deli' => $delivery_address->lastname,
            'company_deli' => $delivery_address->company,
            'address1_deli' => $delivery_address->address1,
            'address2_deli' => $delivery_address->address2,
            'postcode_deli' => $delivery_address->postcode,
            'city_deli' => $delivery_address->city,
            'state_name_deli' => $state_deli,
            'country_name_deli' => $delivery_address->country,
            'phone_deli' => $delivery_address->phone,
            'phone_mobile_deli' => $delivery_address->phone_mobile,
            /* End mod for custom address format */

Adesso la fattura viene giustamente visualizzata con le due province differenti tra fatturazione e consegna. Sorry! :wub:

screen_3.png.6933bc550a69f048e5f52bd4aeb2f037.png

Edited by viger (see edit history)
Link to comment
Share on other sites

8 minutes ago, morando said:

le traduzioni delle altre parole della fattura le ho fatte da:

internazionale>traduzioni

traduzioni dei temi>classic>italiano

espandi fino a:

shop>pdf

ma queste non le trovo

eventualemte possiamo mettere le parole in Italiano sul file pdf/invoice.addresses-tab.tpl ??

 

Infatti non le trovo neanche io, il che è strano, con la 1.6 mi apparivano istantaneamente da tradurre nel BO. 

Sì, si possono mettere direttamente in italiano, ma non è molto professionale, dovrei guardarci dentro per capire cosa è cambiato e come fare per far apparire le traduzioni mancanti nel BO.

Ad ogni modo, per una soluzione pratica e veloce, nel file /pdf/invoice.addresses-tab.tpl trovi le parole in inglese, facilmente le puoi tradurre in italiano.

Link to comment
Share on other sites

Ho fatto un po' di ricerca nei vari forum, pare che il nuovo sistema di traduzione di PS 1.7 sia un disastro, ho trovato tante domande ma nessuna risposta. Onestamente non sono venuto a capo di nulla e sono felice di non aver fatto l'upgrade.

Se qualcuno ha qualche soluzione, ben venga!

Link to comment
Share on other sites

  • 1 month later...

Buongiorno a tutti,

io ho la versione 1.6.1.18 e la modifica indicata nel primo post funziona perfettamente per quanto riguarda la fattura.

Solo che avendo eliminato dni, phone e altro nella sintassi dell'indirizzo (per evitare di farli stampare due volte, come da istruzioni) non mi escono più i numeri di telefono nel DDT, che è il documento che invio ai privati quando non mi richiedono fattura.

Potete indicarmi gentilmente come fare lo stesso lavoro sul DDT? Mi servono solo i numeri di telefono, perchè i corrieri li prendono da li...

 

Grazie mille

Link to comment
Share on other sites

Ciao,

nel BO ==> Localizzazione->Nazione->Italia->Formato Indirizzo dovresti avere queste voci:

firstname lastname
company
vat_number
address1
address2
postcode city
State:name
Country:name
phone
phone_mobile

Con queste e le modifiche riportate, nella versione 1.6.1.4, non dovrebbe raddoppiare nulla in fattura. Per altre versioni non so, ho fatto quella della 1.7, per la 1.6.1.18 non ho idea se la modifica funzioni!

Con le modifiche riportate, nella 1.6.1.4 ho questi risultati:

Fattura:

fatt.png.6b94012ed31c2aa4c583c04570512e77.png

DDT:

ddt.png.d218a47907fe97d9c0ed985e1d45c35c.png

I dati ci sono tutti, non sono formattati come nella fattura, ovviamente, ma si può fare con poco.

Ora non so se nella 1.6.1.18 funziona così...

 

 

 

Link to comment
Share on other sites

  • 2 years later...

Salve a tutti! Grazie mille a @viger per questa fantastica soluzione!

Volevo chiedere se anche a voi non visualizza l'indirizzo di fatturazione nelle note di credito, esce scritto il titolo "indirizzo di fatturazione" ma nessun dato.

Da quando ho apliccato questa modifica mi succede questo, uso prestashop 1.7.6.1

Grazie a tutti! 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...