Numerazione fatture Prestashop – Come azzerarla?

0
fatture-reset-annuale

Perchè la numerazione fatture Prestashop non è ripartita da 1 con l’inizio del nuovo anno?

Probabilmente questa e una cosa voluta dal team di Prestashop per soddisfare le esigenze di altri paesi europei, ma nel nostro caso, il classico metodo di fatturazione, detta che al cominciare del nuovo anno debba azzerarsi la numerazione delle fatture per ripartire dalla fattura numero 1 e così via.

Possiamo risolvere questo problema modificando una piccola parte di codice nel file /classes/order/order.php per quanto riguarda le versioni più recenti come la 1.5.5.

dovete trovare intorno alla riga 1088:

public static function getLastInvoiceNumber()
  1. {
  2.    return Db::getInstance()->getValue(
  3.     SELECT MAX(`number`)
  4.     FROM `’._DB_PREFIX_.‘order_invoice`
  5.   ‘);
  6. }

e sostituire con:

public static function getLastInvoiceNumber()
  1. {
  2.    return Db::getInstance()->getValue(
  3.     SELECT MAX(`number`)
  4.     FROM `’._DB_PREFIX_.‘order_invoice` WHERE year(date_add) = year(current_date)
  5.   ‘);
  6. }

Per quanto riguarda versioni meno recenti invece occorre modificare il file  /classes/order.php

dovete trovare intorno alla riga 906:

public static function getLastInvoiceNumber()
  1. {
  2.   return (int)Db::getInstance()->getValue(
  3.  SELECT MAX(`invoice_number`) AS `invoice_number`
  4.  FROM `’._DB_PREFIX_.‘orders`
  5.  ‘);
  6. }

e sostituire con:

public static function getLastInvoiceNumber()
  1. {
  2.   return (int)Db::getInstance()->getValue(
  3.  SELECT MAX(`invoice_number`) AS `invoice_number`
  4.  FROM `’._DB_PREFIX_.‘orders` WHERE year(invoice_date) = year(current_date)
  5.  ‘);
  6. }

dovete trovare intorno alla riga  926 :

$number = ‘(SELECT `invoice_number`
  1.    FROM (
  2.     SELECT MAX(`invoice_number`) + 1 AS `invoice_number`
  3.     FROM `‘._DB_PREFIX_.’orders`)
  4.    tmp )‘;

e sostituire con:

$number = ‘(SELECT `invoice_number`
  1.    FROM (
  2.     SELECT MAX(`invoice_number`) + 1 AS `invoice_number`
  3.     FROM `‘._DB_PREFIX_.’orders`) WHERE year(invoice_date) = year(current_date)
  4.    tmp )‘;
  5. Presumo però che avrete già delle fatture generate nel nuovo anno con numeratore sbagliato, non dovrete far altro che modificare:
  6. – il numeratore (invoice_number) nella tabella orders per le versioni più vecchiotte.
  7. – il numeratore (number) nella tabella order_invoice per le versioni più recenti.

– See more at: http://www.bakko.it/numerazione-fatture-prestashop-come-azzerarla/#sthash.wEtsnz3Y.dpuf

Articolo precedenteL’utilizzo del display da studio di Apple con un PC Windows è stranamente difficile
Articolo successivoFFDroider ruba gli account dei social media per diffondere malware: come proteggersi
Web designer e webmaster freelance. Appassionato di comunicazione e nuove tecnologie, sviluppo e gestisco siti web vetrina, e-commerce, magazine dal 1995. Studio l’usabilità dei siti per una migliore fruizione dei contenuti da parte degli utenti.