viger Posted November 5, 2013 Share Posted November 5, 2013 (edited) Ciao! Ho finito, almeno spero, il capitolo fatture e lo condivido volentieri. La fattura di default di PS è alquanto bruttina, oltre che con qualche bug, così come sono buggate quasi tutte le funzioni nel carrello, nello shop e nel checkout per evidenziare "IVA inclusa" / "IVA esclusa". Non sono indispensabili, ma almeno a me fa una pessima impressione ricevere una fattura dove il prezzo rimane il medesimo ma l'etichetta segna con e senza IVA, dove la formattazione è pessima, ecc. Anche se virtuale, è pur sempre un negozio, e non è bello entrare in un negozio sporco o disordinato. Quindi mi sono rimboccato le maniche e tra segnalazioni e/o risoluzioni di bug e un bel po' di lavoro, ecco un lungo post che spero sia utile a qualcuno. Non è detto che sia esente da bug, io ho fatto molte prove e lo uso nel mio shop, in caso... segnalate! Per Prestashop 1.5 Per prima cosa delle immagini, le fatture appariranno così: con IVA si iva.pdf senza IVA no iva.pdf Poi i template: li trovate nello zip allegato con la ricostruzione del percorso dove vanno messi (ho inserito anche la traduzione in italiano e inglese per chi, come me, vuole sostituire IVA con VAT). Per sicurezza, rinominare i file esistenti che andranno sostituiti per tenerli come backup. Poi alcune modifiche: - aprire /classes/pdf/PDFGenerator.php - cercare: $this->setMargins(10, 40, 10); modificarlo in: $this->setMargins(10, 5, 10); - aprire /classes/pdf/HTMLTemplateInvoice.php - cercare: $this->title = HTMLTemplateInvoice::l('Invoice ').' #'.Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, (int)$this->order->id_shop).sprintf('%06d', $order_invoice->number); cambiare in: $this->title = Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, (int)$this->order->id_shop).sprintf('%06d', $order_invoice->number); Ora debug per una corretta visualizzazione dell'IVA (tasse) nel carrello. - aprire il file /classes/Product.php - cercare: self::$_taxCalculationMethod = Group::getPriceDisplayMethod((int)$customer->id_default_group); - aggiungere dopo: $cur_cart = Context::getContext()->cart; $id_address = 0; if (Validate::isLoadedObject($cur_cart)) $id_address = $cur_cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}; $address_infos = Address::getCountryAndState($id_address); if (self::$_taxCalculationMethod != PS_TAX_EXC && !empty($address_infos['vat_number']) && $address_infos['id_country'] != Configuration::get('VATNUMBER_COUNTRY') && Configuration::get('VATNUMBER_MANAGEMENT')) self::$_taxCalculationMethod = PS_TAX_EXC; - aprire classes/controller/FrontController.php - cercare: CartRule::autoAddToCart($this->context); } - aggiungere dopo: else $this->context->cart = $cart; - cercare: 'priceDisplay' => Product::getTaxCalculationMethod(), - sostituire con: 'priceDisplay' => Product::getTaxCalculationMethod((int)$this->context->cookie->id_customer), Ora per visualizzare correttamente IVA incl/excl nello step della scelta corrieri. - aprire /themes/default/order-carrier.tpl - cercare: {if $use_taxes == 1} {convertPrice price=$option.total_price_with_tax} {l s='(tax incl.)'} {else} {convertPrice price=$option.total_price_without_tax} {l s='(tax excl.)'} {/if} - sostituirlo con: {if $priceDisplay == 1} {convertPrice price=$option.total_price_without_tax} {l s='(tax excl.)'} {else} {convertPrice price=$option.total_price_with_tax} {l s='(tax incl.)'} {/if} Poi c'è anche una piccola modifica per visualizzare o meno l'etichetta IVA nella pagina prodotto, ma se ne è già parlato nel forum. Mi sembra ci sia tutto, per qualsiasi cosa... siamo qui! invoice_mod.zip Edited November 6, 2013 by viger (see edit history) 4 Link to comment Share on other sites More sharing options...
merit Posted November 12, 2013 Share Posted November 12, 2013 Oooo... finalmente un layout di fattura decente, bel lavoro e grazie per averlo condiviso. Solo una cosa, se volessi fare apparire il CF o P.IVA dell' acquirente nei dati di fatturazione dove dovrei intervenire? Link to comment Share on other sites More sharing options...
viger Posted November 12, 2013 Author Share Posted November 12, 2013 Bene, sono contento serva anche a qualcun altro! Per CF/P.IVA lo puoi far inserire nell'indirizzo, ma non formattarlo (che so, tipo C.F.: sjhsahhsgkjhdg), o meglio, si può senz'altro fare ma io non so come... Per inserirlo vai su Localizzazione==>Nazioni, clicca su Italia e nel campo "Layout indirizzo" inserisci: company vat_number dni Questo ti farà apparire nome ditta/P.IVA e CF, ma li dovrai riconoscere a occhio, non sono preceduti da una qualche etichetta. Devi inserirli per ogni nazione in cui ti servono. Il CF solo per l'Italia, ma la P.IVA per tutta la UE se vendi anche a ditte in esenzione d'IVA. Link to comment Share on other sites More sharing options...
Scnd Posted November 13, 2013 Share Posted November 13, 2013 Questa soluzione richiede modifiche al core che si perderebbero in caso di aggiornamento. Pensi che sia il caso di fare una pull request per fare integrare le tue modifiche nella distribuzione ufficiale? Link to comment Share on other sites More sharing options...
viger Posted November 13, 2013 Author Share Posted November 13, 2013 Si può fare, ma se va come altre che ho inviato, anche su github, non mi hanno neanche degnato di un commento... Proverò a postare anche questa. Link to comment Share on other sites More sharing options...
viger Posted November 21, 2013 Author Share Posted November 21, 2013 Ho integrato questa modifica in una completa e spero definitiva (per me): http://www.prestashop.com/forums/topic/290714-modifica-per-etichetta-iva-escl-incl-ovunque-anche-fatture/ in caso la discussione continua lì. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now