rancla Posted January 3, 2014 Share Posted January 3, 2014 Ciao a tutti come da titoli vi pongo il mio problema. Dopo un anno con il mio ecommerce vogliamo resettare la numerazione delle fatture. C'è la possibilità di farlo? Io uso prestashop 1.5.6.1. Ho già dato un'occhiata con vari post già creati in passato ma nessuno funziona. Grazie mille a tutti. Link to comment Share on other sites More sharing options...
assisassi Posted January 3, 2014 Share Posted January 3, 2014 Se non hanno cambiato di nuovo, nel gennaio scorso l'agenzia delle entrate aveva riconosciuto una certa libertà nella numerazione delle fatture, (vedi qui). Quindi è possibile continuare la vecchia numerazione, come avviene in tutta Europa. Ma se vuoi, puoi aggiungere l'anno come suffisso (o ulteriore suffisso), che, essendo numerico, è di facile applicazione. Per fare ciò, in Ordini>Fatture, sulle opzioni fatture dici di iniziare ad esempio dal n. 20140000. Buon anno 1 Link to comment Share on other sites More sharing options...
tuxinside Posted January 4, 2014 Share Posted January 4, 2014 Buongiorno Rancla: premetto che il mio commercialista mi ha consigliato di continuare la numerazione "classica" delle fatture, ovvero con reset annuale ripartendo da 1. Ho quindi provveduto ad apportare le giuste modifiche ai siti di ecommerce che gestisco. Allora, nel caso tu abbia una vecchia versione di PS (personalmente testai questa modifica sul ps 1.5.3) segui questa guida: www.prestashop.com/forums/topic/148676-reset-contatore-fatture-anno-nuovo nel caso invece tu debba modificare una versione più recente (tipo 1.5.6) dove i file sono stati modificati rispetto alle versioni più vecchie), prova a sostituire nel file /classes/order/order.php la seguente funzione: public static function getLastInvoiceNumber() { return Db::getInstance()->getValue(' SELECT MAX(`number`) FROM `'._DB_PREFIX_.'order_invoice` WHERE year(date_add) = year(current_date) '); /** originale. Modificato per resettare il contatore ad ogni inizio anno x la fatturazione. return Db::getInstance()->getValue(' SELECT MAX(`number`) FROM `'._DB_PREFIX_.'order_invoice` '); */ } Cordiali Saluti, Simone Giusti 2 Link to comment Share on other sites More sharing options...
jacobcastiglioni Posted January 7, 2014 Share Posted January 7, 2014 Ho testato la soluzione proposta da Tuxinside "per versioni recenti (tipo 1.5.6)" e funziona sia con Prestashop 1.5.2.0 che 1.5.4.0:-) Link to comment Share on other sites More sharing options...
Totti Posted January 16, 2014 Share Posted January 16, 2014 Confermate che funziona ? Link to comment Share on other sites More sharing options...
Totti Posted January 28, 2014 Share Posted January 28, 2014 Ma posso usare questa modifica anche se ho iniziato il nuovo anno senza resettare ? Link to comment Share on other sites More sharing options...
Totti Posted January 28, 2014 Share Posted January 28, 2014 Le tabelle da modificare a mano sono solo order_invoice e orders ? Link to comment Share on other sites More sharing options...
tuxinside Posted January 28, 2014 Share Posted January 28, 2014 @Totti: vedendo la query credo che se resetti adesso ad anno in corso, la numerazione dovrebbe continuare come senza modifiche. Se ad esempio hai emesso la fattura n. 452 in data di ieri, ed al primo gennaio avessi emesso la 400, anche con la modifica che sugerii, il sistema di fatturazione dovrebbe continuare con 453, 454 ... Se la prima fattura dell'anno l'avessi emessa già con la modifica, non avresti avuto noie. Comunque sono supposizioni: prestashop è incasinato all'inverosimile per quanto riguarda le fatturazioni. Comunque, se la modifica non funzionasse, dobrevvbe essere sufficiente modificare la numerazione delle fatture nella tabella degli incubi "order_invoice", dal primo gennaio in poi... oltre a reinviare copia delle fatture gia emesse a tutti i clienti, in quanto la numerazione non sarebbe piu corretta. Buon lavoro! 1 Link to comment Share on other sites More sharing options...
Totti Posted January 28, 2014 Share Posted January 28, 2014 @Totti: vedendo la query credo che se resetti adesso ad anno in corso, la numerazione dovrebbe continuare come senza modifiche. Se ad esempio hai emesso la fattura n. 452 in data di ieri, ed al primo gennaio avessi emesso la 400, anche con la modifica che sugerii, il sistema di fatturazione dovrebbe continuare con 453, 454 ... Se la prima fattura dell'anno l'avessi emessa già con la modifica, non avresti avuto noie. Comunque sono supposizioni: prestashop è incasinato all'inverosimile per quanto riguarda le fatturazioni. Comunque, se la modifica non funzionasse, dobrevvbe essere sufficiente modificare la numerazione delle fatture nella tabella degli incubi "order_invoice", dal primo gennaio in poi... oltre a reinviare copia delle fatture gia emesse a tutti i clienti, in quanto la numerazione non sarebbe piu corretta. Buon lavoro! Però modificando queste due tabelle, dopo PS con la query modificata dovrebbe funzionare non credi ? Link to comment Share on other sites More sharing options...
tuxinside Posted January 28, 2014 Share Posted January 28, 2014 Ciao Totti, sì, se prima modifichi le tabelle a mano e poi applichi la modifica, dovrebbe funzionare. Se posso permettermi di darti un consiglio: prima di fare prove, fai prima un bel backup del database! Il sistema di fatturazione di PS ha bug grossi come tacchini e tabelle con dati duplicati. A fare modifiche nelle fatture già emesse è molto probabile incappare in qualche inconsistenza... e li son dolori se non hai un backup aggiornato! 1 Link to comment Share on other sites More sharing options...
Totti Posted January 29, 2014 Share Posted January 29, 2014 Qualcuno lo ha già provato ? Link to comment Share on other sites More sharing options...
Totti Posted February 4, 2014 Share Posted February 4, 2014 Buongiorno Rancla: premetto che il mio commercialista mi ha consigliato di continuare la numerazione "classica" delle fatture, ovvero con reset annuale ripartendo da 1. Ho quindi provveduto ad apportare le giuste modifiche ai siti di ecommerce che gestisco. Allora, nel caso tu abbia una vecchia versione di PS (personalmente testai questa modifica sul ps 1.5.3) segui questa guida: www.prestashop.com/forums/topic/148676-reset-contatore-fatture-anno-nuovo nel caso invece tu debba modificare una versione più recente (tipo 1.5.6) dove i file sono stati modificati rispetto alle versioni più vecchie), prova a sostituire nel file /classes/order/order.php la seguente funzione: public static function getLastInvoiceNumber() { return Db::getInstance()->getValue(' SELECT MAX(`number`) FROM `'._DB_PREFIX_.'order_invoice` WHERE year(date_add) = year(current_date) '); /** originale. Modificato per resettare il contatore ad ogni inizio anno x la fatturazione. return Db::getInstance()->getValue(' SELECT MAX(`number`) FROM `'._DB_PREFIX_.'order_invoice` '); */ } Cordiali Saluti, Simone Giusti Ho fatto questa modifica e provato anche a fare a mano la query, il risultato è esatto però quando vado a fare una nuova fattura mi continua sempre con la vecchia numerazione, perchè ? Link to comment Share on other sites More sharing options...
Totti Posted February 7, 2014 Share Posted February 7, 2014 A qualcuno funziona ? Se eseguo a mano la query mi ritorna il numero fattura esatto, ma poi PS mi riprende dalla numerazione vecchia. Link to comment Share on other sites More sharing options...
tuxinside Posted February 7, 2014 Share Posted February 7, 2014 Che versione di PS usi? Mi ricordo che in una vecchia versione (tipo la 1.5.3, se non erro), il codice php era diverso e c'erano da modificare 2 parti diverse del codice. Prova a seguire questa guida: www.prestashop.com/forums/topic/148676-reset-contatore-fatture-anno-nuovo 1 Link to comment Share on other sites More sharing options...
Totti Posted February 7, 2014 Share Posted February 7, 2014 Che versione di PS usi? Mi ricordo che in una vecchia versione (tipo la 1.5.3, se non erro), il codice php era diverso e c'erano da modificare 2 parti diverse del codice. Prova a seguire questa guida: www.prestashop.com/forums/topic/148676-reset-contatore-fatture-anno-nuovo Uso laversione 1.5.6.2 quindi il link che mi hai dato va bene. Io ho fatto questa modifica public static function getLastInvoiceNumber() { return Db::getInstance()->getValue(' SELECT MAX(`number`) FROM `'._DB_PREFIX_.'order_invoice` WHERE year(date_add) = year(current_date) '); e sistemato i record nel DB. Se faccio la query a mano mi ritorna il numero giusto, ma poi PS quando emette la fattura mi prende il numero della fattura vecchio. Forse ci sono altre routine da modificare ? Link to comment Share on other sites More sharing options...
eugenata Posted February 7, 2014 Share Posted February 7, 2014 Senza nulla togliere al lavoro di quanti si sono operati per ottenere l'azzeramento del numero di fattura ogni anno, (me compreso) ricordo a tutti che ciò non è necessario secondo quanto previsto dalle norme attualmente vigenti in Italia. Maggiori approfondimenti qui: http://www.leggioggi.it/2013/01/11/numerazione-delle-fatture-lagenzia-delle-entrate-riconosce-ampia-liberta/ 1 Link to comment Share on other sites More sharing options...
Totti Posted February 10, 2014 Share Posted February 10, 2014 Però a me continua a non funzionare ! Link to comment Share on other sites More sharing options...
Totti Posted February 18, 2014 Share Posted February 18, 2014 Ragazzi ma qualcuno usa questa modifica ? Ho fatto tutto quanto ma mi inizia sempre dalal fattura dell'anno prima. Forse c'è da modificare dell'altro ? Link to comment Share on other sites More sharing options...
mante80 Posted January 5, 2016 Share Posted January 5, 2016 Ragazzi ma qualcuno usa questa modifica ? Ho fatto tutto quanto ma mi inizia sempre dalal fattura dell'anno prima. Forse c'è da modificare dell'altro ? Ciao, forse arrivo tardi per aiutarti ma anch'io avevo questo problema sulla 1.6.0.14 ma mi sono accorto di una cosa: viene giustamente modificata la funzione get che va a prendere la fattura con numero più alto dell'ultimo anno ma non la set che continua invece ad accrescere il numero facendo il "max" tra tutto. Ho modificato la funzione e così sembra andare: public static function setLastInvoiceNumber($order_invoice_id, $id_shop) { if (!$order_invoice_id) return false; $number = Configuration::get('PS_INVOICE_START_NUMBER', null, null, $id_shop); // If invoice start number has been set, you clean the value of this configuration if ($number) Configuration::updateValue('PS_INVOICE_START_NUMBER', false, false, null, $id_shop); $sql = 'UPDATE `'._DB_PREFIX_.'order_invoice` SET number ='; if ($number) $sql .= (int)$number; else $sql .= '(SELECT new_number FROM (SELECT (MAX(`number`) + 1) AS new_number FROM `'._DB_PREFIX_.'order_invoice` WHERE year(date_add) = year(current_date)) AS result)'; $sql .=' WHERE `id_order_invoice` = '.(int)$order_invoice_id; return Db::getInstance()->execute($sql); } Non ho ancora testato a fondo ma sembra tutto ok Link to comment Share on other sites More sharing options...
Totti Posted January 5, 2016 Share Posted January 5, 2016 Con la nuova versione di ps hanno risolto il problema Link to comment Share on other sites More sharing options...
mante80 Posted January 7, 2016 Share Posted January 7, 2016 Quale versione? Nella 1.6.0.14 era ancora presente. Ora resetta annualmente le fatture in automatico o è possibile specificare se si vuole resettare o meno? Grazie, ciao Link to comment Share on other sites More sharing options...
Totti Posted January 7, 2016 Share Posted January 7, 2016 Si puoi decidere di farlo o meno. 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