Jump to content

Aggiungere label PIVA e CF clienti in Fattura


sgnappo

Recommended Posts

Ciao tutti,

 

nella fattura generata, nella sezione dei dati del cliente compaiono correttamente il CF e la PIVA ma non compaiono le label.

 

Cioè, compaiono solo i codici senza la scritta "P.IVA:" prima del codice.

 

Come si può aggiungere la label?

 

Ciao e grazie

Salvatore

Link to comment
Share on other sites

  • 2 weeks later...

Per la partita iva installa il modulo partita iva europea

 

Per il codice fiscale, vai in

 

Localizzazione > Nazioni

 

dentro la pagina di modifica della nazione c'è l'opzione "Richiesto numero di codice fiscale?" : impostala su "sì".

 

Inoltre devi aggiungere nel "Layout indirizzo" i campi richiesti, che sono:

- vat_number

- dni

 

Vedi l'immagine allegata a questo indirizzo http://redesiderio.it/img/vendita-prodotti-giardino-codice-fiscale.png

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

Ciao alreadynight,

 

questi passaggi li avevo già fatti e il CF/PIVA compaiono correttamente in fattura. Compaiono però solo il relativi codici senza una label che indichi che quel numero è una PIVA.

 

Cioè in fattura mi trovo:

 

Nome Cognome

XXXYYY56F76G563W

1234567890123456

Via .....

Città....

 

Vorrei avere:

 

Nome Cognome

CF: XXXYYY56F76G563W

P.IVA: 1234567890123456

Via .....

Città....

 

Ciao

Salvatore

 

---

Cartucce e Toner

Ricette dal Mondo

Link to comment
Share on other sites

ciao sgnappo,

il mio post era una risposta per armadillo2.

 

Il tuo problema l'ho anch'io (far comparire le diciture P.IVA e CF in fattura vicino ai rispettivi valori) ma non sono ancora riuscito a lavorarci.

 

Aggiungo inoltre che manca anche il corriere sia sul DDT che sulla fattura: altra cosa da sistemare!

 

ciao

Link to comment
Share on other sites

Buon giorno a tutti :)

Mi aggiungo alla discussione perchè vorrei riuscire ad aggiungere sulla fattura di prestashop (1.5.3.1 utilizzata) la dicitura

 

''OPERAZIONE SENZA APPLICAZIONE DELL’IVA AI SENSI DELL’ART. 1, COMMA 100, LEGGE N.244/2007. REGIME FISCALE DI VANTAGGIO PER L’IMPRENDITORIA GIOVANILE E PER I

LAVORATORI IN MOBILITA’ EX ART.27, COMMI 1 E 2, DL N.98/2011''

 

Vorrei farla comparire immediatamente sotto la lista prodotti acquistati.

Qualcuno sa come fare o dove mettere mano?

 

Ho iniziato a dare un'occhiata ai file header.tpl ed invoice.tpl ho anche provato a ''paccioccare'' un po' con il codice, ma non riesco a capire dove inserire questa dicitura per farla comparire in fattura.

 

Spero qualcuno ne sappia qualcosa in più e possa aiutarmi, grazie in anticipo

 

Davide

Link to comment
Share on other sites

  • 2 weeks later...

Sono riuscito a modificare il PDF della fattura, anche se in un modo poco elegante, ma almeno funziona.

 

In parole povere ho creato un nuovo modifier di smarty al quale passo il numero d'ordine. Nel modifier vado a caricarmi direttamente da DB i dati che mi servono, preparo il codice HTML e lo ritorno al template invoice.tpl (directory pdf/invoice.tpl).

 

Ripeto, è poco elegante ma funziona. Purtroppo non ho tempo per studiarmi bene l'architettura di prestashop, quindi, conoscendo Smarty, ho optato per la strada che mi era + comoda.

 

Di seguito il codice inserito nel tpl invoice.tpl

 

ho sotituiro il codice

 

 

<td style="width: 50%">

<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Delivery Address' pdf='true'}</span><br />

{$delivery_address}

</td>

<td style="width: 50%">

<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Billing Address' pdf='true'}</span><br />

{$invoice_address}

</td>

 

 

con il codice che richiama il mio modifier

 

{$order->getUniqReference()|invoiceCF}

 

il modifier l'ho creato sotto la dir tools/smarty/plugins e l'ho chiamato modifier.invoiceCF.php

 

il codice del modifier è qualcosa del genere:

 

function smarty_modifier_invoiceCF($reference)

{

 

//faccio una query e carico i dati dell'ordine

$q = "select * from ps_orders where reference = '$reference' ";

$order = $mysql->query($q);

 

//dall'ordine recupero gli id degli indirizzi e carico i dati

 

$id_address = $order['id_address_invoice'];

$q = "select a.*, c.name country from ps_address a join ps_country_lang c on a.id_country = c.id_country where a.id_address = $id_address and c.id_lang = 1 ";

$invoice = $mysql->query($q);

 

 

$id_address = $order['id_address_delivery'];

$q = "select a.*, c.name country from ps_address a join ps_country_lang c on a.id_country = c.id_country where a.id_address = $id_address and c.id_lang = 1 ";

$delivery = $mysql->query($q);

 

//ora ho tutto quello che mi serve per formattare il mio codice html

 

$output = " <td style=\"width: 50%\">

<span style=\"font-weight: bold; font-size: 10pt; color: #333333\">Indirizzo consegna</span><br />

Cliente: {$delivery['firstname']} {$delivery['lastname']}<br />

Azienda: {$delivery['company']}<br />

C.F.: {$delivery['dni']}<br />

P.I.: {$delivery['vat_number']}<br />

Indirizzo: $indirizzo_consegna<br />

Note: {$delivery['other']}

</td>

<td style=\"width: 50%\">

<span style=\"font-weight: bold; font-size: 10pt; color: #333333\">Indirizzo fatturazione</span><br />

Cliente: {$invoice['firstname']} {$invoice['lastname']}<br />

Azienda: {$invoice['company']}<br />

C.F.: {$invoice['dni']}<br />

P.I.: {$invoice['vat_number']}<br />

Indirizzo: $indirizzo_fattura<br />

Note: {$invoice['other']}

</td>

 

";

 

//ritorno il codice al template

 

return $output;

 

 

 

}

 

 

 

NOTE: il codice non è funzionante ma è un esempio dal quale partire. Basta modificare la parte che esegue le query in modo che ritorni un array associativo e il gioco è fatto.

 

LO SO: la soluzione è brutta, sporca e maleodorante... ma funziona. Piuttosto di niente è meglio piuttosto!

Link to comment
Share on other sites

Ciao alreadynight;

 

prima di tutto grazie per aver condiviso il lavoro fatto.

 

La soluzione mi sembra accettabile ma provando a fare quanto indicato e provando ad aprire una Fattura dal BO mi esce una pagina bianca.

 

Ho notato che ciò succede alla riga dove c'è il codice:

 

{$order->getUniqReference()|invoiceCF}

 

La chiamata è corretta? Devo fare qualche inclusione/import?

 

Fammi sapere

 

Ciao e grazie

Salvatore

Link to comment
Share on other sites

Il codice postato era solo di esempio e non funzionava (per esempio mancava la classe che effettuava l'astrazione del db per effettuare le query).

 

Allego i file con il codice funzionante: vanno modificati i modifier per far si che la connessione al DB funzioni (alla riga 7 mettete i vostri parametri)

 

i file php

 

modifier.deliveryAddress.php

modifier.invoiceAddress.php

Mysql.class.php

 

vanno messi nella directory

 

tools/smarty/plugins

 

nel template invoice.tpl (che trovate nella directory pdf) invece sostituite

 

{$delivery_address} con {$order->getUniqReference()|deliveryAddress}

 

e

 

{$invoice_address} con {$order->getUniqReference()|invoiceAddress}

 

 

QUESTO CODICE FUNZIONA CON PRESTASHOP 1.5.3! ;-)

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

ok, fatto!

 

La nuova query dovrebbe essere:

 

$q = "select a.*, c.name country, s.name state from ps_address a join ps_country_lang c on a.id_country = c.id_country join ps_state s on a.id_state = s.id_state where a.id_address = $id_address and c.id_lang = 1 ";

 

Sei stato di grande aiuto...ti ringrazio.

 

Ciao

Salvatore

Link to comment
Share on other sites

La nuova query dovrebbe essere:

 

$q = "select a.*, c.name country, s.name state from ps_address a join ps_country_lang c on a.id_country = c.id_country join ps_state s on a.id_state = s.id_state where a.id_address = $id_address and c.id_lang = 1 ";

 

 

in realtà sarebbe meglio fare dei left join: in alcuni casi la provincia potrebbe non esserci (es. stati esteri)

quindi la query sarebbe

 

$q = "select a.*, c.name country, s.name state from ps_address a join ps_country_lang c on a.id_country = c.id_country [b]LEFT join[/b] ps_state s on a.id_state = s.id_state where a.id_address = $id_address and c.id_lang = 1 ";

 

 

Sei stato di grande aiuto...ti ringrazio.

 

Figurati! Oggi tocca a me, domani a te! ;-)

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

  • 2 weeks later...

in realtà sarebbe meglio fare dei left join: in alcuni casi la provincia potrebbe non esserci (es. stati esteri)

quindi la query sarebbe

 

$q = "select a.*, c.name country, s.name state from ps_address a join ps_country_lang c on a.id_country = c.id_country [b]LEFT join[/b] ps_state s on a.id_state = s.id_state where a.id_address = $id_address and c.id_lang = 1 ";

 

 

 

 

Figurati! Oggi tocca a me, domani a te! ;-)

 

Scusate la mia ignoranza... purtroppo principiante su prestashop... quale file da modificare con il codice nuovo per fa si che esca la provincia? io ho modificato sia il file modifier.deliveryAddress.php che modifier.invoiceAddress.php ... sono spariti tutti i dati del cliente... grazie.

Link to comment
Share on other sites

devi modificare entrambi.

Verifica che la query funzioni correttamente (stampala a video, copiala e eseguila sul tuo DB).

 

Se la query funziona correttamente (come dovrebbe) verifica di aver impostato correttamente i parametri per la connessione al DB.

La riga interessata è questa

 

$mysql = new Mysql('host','nome_db','user','passwd');

 

sostituisci host, nome_db, user e passwd con i tuoi parametri.

 

La soluzione funziona ed è attualmente utilizzata su questo e-commerce di vendita arredo per giardino.

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

  • 2 weeks later...

ciao a tutti!

scusate ma io ho un problema simile, ma non in fase di fatturazione.

Il PDF mi esce alla grande e l'ho personalizzato grazie a PDF M4, io il problema ce l'ho con l'inserimento della P. IVA...

il campo P. IVA non mi esce ne on-line se il cliente prova a registrarsi e ad ordinare al sito internet e ne tanto meno se inserisco io il cliente e l'indirizzo del cliente per fare una fattura off-line...

potete aiutarmi?

Link to comment
Share on other sites

  • 1 month later...

Ciao,

ho fatto una modifica un pò più light rispetto all'amico alreadynight per chi volesse aggiungere le "label" negli indirizzi di fatturazione e consegna della fattura.

E' sufficiente modificare il file AddressFormat.php, che si trova sotto la cartella classes, aggiungendo il metodo allegato e modificando la riga 376 <$addressFormatedValues[$pattern]).$separator) : '';> con questa <AddressFormat::setLabelAddressValues($addressFormatedValues[$pattern], $pattern)).$separator) : '';>.

 

Questo codice funziona con PrestaShop 1.5.4.1

 

Allego anche un ritaglio del risultato.

setLabelAddressValues.txt

post-591211-0-78563000-1373575934_thumb.jpg

  • Like 3
Link to comment
Share on other sites

  • 4 months later...
  • 1 month later...

Ciao, riesumo questo post, avendo applicato le modifiche di airbag su ps 1560, che funzionano perfettamente con le fatture ai privati, ma con società con P.IVA viene generato il pdf in bianco, è presente solo il logo e il numero fattura. Suggerimenti?

Link to comment
Share on other sites

  • 4 weeks later...

Ciao, riesumo questo post, avendo applicato le modifiche di airbag su ps 1560, che funzionano perfettamente con le fatture ai privati, ma con società con P.IVA viene generato il pdf in bianco, è presente solo il logo e il numero fattura. Suggerimenti?

trovato l'errorino...

 

 

        } else if($addressEnglishLabel == "company") {

            return "Società: " .$addressValue;

 

Società con l'accento che non viene riconosciuto e crea pagina bianca, occorre usare il codice html Società

 

Link to comment
Share on other sites

  • 6 months later...

scusate ma con che programma si riesce a modificare i file tpl?

sulla versione 1.6 dove trovo il file da modificare? volevo ingrandire i caratteri e modificare il layout

 

con un qualsiasi editor di testo (blocco note per esempio).

 

i files si trovano nella cartella pdf

Link to comment
Share on other sites

  • 9 months later...

Ciao a tutti,
prestashop 1.6.0.14. per inserire il label C.F. (codice fiscale) in fattura ho fatto così:
 in LOCALIZZAZIONE / NAZIONI / ITALIA ho impostato layout indirizzo il (dni) in cima alla tabella (sopra a nome e cognome).
poi nel file
invoice.tpl
ho scritto C.F. nella posizione esatta che potete vedere evidenziati nello shot allegato.
per me va bene così, semplice e funzionale per avere il codice fiscale decente in fattura.
 

post-1017076-0-16272400-1433372291_thumb.png

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Ciao,

ho fatto una modifica un pò più light rispetto all'amico alreadynight per chi volesse aggiungere le "label" negli indirizzi di fatturazione e consegna della fattura.

E' sufficiente modificare il file AddressFormat.php, che si trova sotto la cartella classes, aggiungendo il metodo allegato e modificando la riga 376 <$addressFormatedValues[$pattern]).$separator) : '';> con questa <AddressFormat::setLabelAddressValues($addressFormatedValues[$pattern], $pattern)).$separator) : '';>.

 

Questo codice funziona con PrestaShop 1.5.4.1

 

Allego anche un ritaglio del risultato.

Fantastico risultato, leggero e pulito.

Due domande:

1)  dovrei visualizzare sulla fattura (che serve per archivio) la data di nascita. Ma usando

if($addressEnglishLabel == "birthday") {

return "Data di nascita : " .$addressValue; 

non inserisce alcuna etichetta.

 

2) Ho creato in ps_customers due nuovi campi "luogonascita" e "palestra", sempre da riportare in stampa pdf fattura.

Se uso lo stesso sistema non esce nessuna etichetta.

 

Ti ringrazio per la soluzione data finora e per quella che potrai darmi.

Link to comment
Share on other sites

  • 1 month later...

Ciao a tutti,

prestashop 1.6.0.14. per inserire il label C.F. (codice fiscale) in fattura ho fatto così:

 in LOCALIZZAZIONE / NAZIONI / ITALIA ho impostato layout indirizzo il (dni) in cima alla tabella (sopra a nome e cognome).

poi nel file

invoice.tpl

ho scritto C.F. nella posizione esatta che potete vedere evidenziati nello shot allegato.

per me va bene così, semplice e funzionale per avere il codice fiscale decente in fattura.

 

attachicon.gifinvoice,tpl.png

Ottima soluzione, semplicissima e funzionante su 1.6 solo per completezza dell'informazione, per chi non riuscisse ad inserire il (dni)..

 

Basta semplicemente scrivere il testo "dni" nella area (Formato indirizzo).  B)

 

Grazie Ruben91284

Link to comment
Share on other sites

  • 5 weeks later...

Scusate la mia ignoranza... purtroppo principiante su prestashop... quale file da modificare con il codice nuovo per fa si che esca la provincia? io ho modificato sia il file modifier.deliveryAddress.php che modifier.invoiceAddress.php ... sono spariti tutti i dati del cliente... grazie.

Se provo ad inserire nei miei file la query che effettua il leftjoin scompaiono anche a me tutti i dati del cliente. Pero se inserisco questa query : $q = "select a.*, c.name country, s.name state from ps_address a join ps_country_lang c on a.id_country = c.id_country join ps_state s on a.id_state = s.id_state where a.id_address = $id_address and c.id_lang = 1 "; mi funziona tutto bene tranne che per la provincia che non mi viene riportata in fattura. Chiaramente ho sostituito in questa riga $mysql = new Mysql('xxxxxx','xxxxxx','xxxxxx','xxxxxx') i miei parametri ma del left join per poter vedere anche la provincia nella fattura proprio nulla. Sapreste darmi qualche consiglio?

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

  • 4 months later...

Ciao io ho seguito la guida di "alreadynight" e ho Prestashop 1.6.1.1 e le etichette P.IVA e C.F. compaiono nella fattura.

 

Leggi il post in fondo alla pagina di alreadynight al seguente link:

https://www.prestashop.com/forums/topic/233429-aggiungere-label-piva-e-cf-clienti-in-fattura/

 

Ovviamente segui il link che ti ho inserito così puoi fare il download di alcuni file che ti serviranno. Comunque il post inizia così:

 

 

 

Caspita, mi pare un po' complesso!

Qui con 4 righe di codice funziona benone  ;)

Link to comment
Share on other sites

  • 7 months later...
  • 2 weeks later...

Se vi può interessare,  noi abbiamo rilasciato un template fattura nuovo https://www.bwlab.it/prodotto/template-fattura-prestashop/

legato a questo che è gratuito abbiamo anche rilasciato un modulo per la gestione della numerazione delle fatture e note di credito https://www.bwlab.it/prodotto/numerazione-fatture-prestashop/  utile soprattutto a inizio nuovo anno fiscale

Link to comment
Share on other sites

  • 1 year later...
On 11/7/2013 at 10:52 PM, airbag76 said:

Ciao,

ho fatto una modifica un pò più light rispetto all'amico alreadynight per chi volesse aggiungere le "label" negli indirizzi di fatturazione e consegna della fattura.

E' sufficiente modificare il file AddressFormat.php, che si trova sotto la cartella classes, aggiungendo il metodo allegato e modificando la riga 376 <$addressFormatedValues[$pattern]).$separator) : '';> con questa <AddressFormat::setLabelAddressValues($addressFormatedValues[$pattern], $pattern)).$separator) : '';>.

 

Questo codice funziona con PrestaShop 1.5.4.1

 

Allego anche un ritaglio del risultato.

setLabelAddressValues.txt

post-591211-0-78563000-1373575934_thumb.jpg

hai qualche aggiornamento per la 1.7 ?

ho provato ma così non funziona

grazie

 

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...