Jump to content

Azzerare numero fattura


rancla

Recommended Posts

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

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

  • Like 1
Link to comment
Share on other sites

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

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

@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!

  • Like 1
Link to comment
Share on other sites

@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

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!

  • Like 1
Link to comment
Share on other sites

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

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

  • Like 1
Link to comment
Share on other sites

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

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/

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...

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

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