Numerazione fatture Prestashop – Come azzerarla?

0
1008

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