PrestaShop

Fatture in Prestashop

Perchè le fatture in prestashop non hanno il progressivo che inizia da 1?

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 )‘;
  5.  

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.  
  6. Presumo però che avrete già delle fatture generate nel nuovo anno con numeratore sbagliato, non dovrete far altro che modificare:
  7. – il numeratore (invoice_number) nella tabella orders per le versioni più vecchiotte.
  8. – il numeratore (number) nella tabella order_invoice per le versioni più recenti.

Guarda altre guida per Prestashop!

 

My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy