Jump to content

prefixe des factures (résolu)


Recommended Posts

Bonjour à tous,
j'utilise prestashop depuis l'année derniere et j'avais mis comme prefixe de facture FA2010 et cette année, j'ai mis FA2011 afin de pouvoir identifier d'un simple coup d'oeil l'année de celle-ci mais, en revenant sur les factures effectuées l'année dernieres, à ma grande surprise, le prefixe des factures est lui aussi changé :bug:
Je pensais que le numéro de facture etait inscrit en entier ( prefixe et numéro) dans la base de donnée hors, apparament ce n'est pas le cas.
Vous pouvez me confirmer que c'est bien le mode de fonctionnement de prestashop ? Que ce n'est pas un bug concernant mon site.
Merci beaucoup pour votre réponse.
Bon dimanche

Link to comment
Share on other sites

Bonjour,
les factures ne sont pas stockées mais générées à la demande lorsque que tu cliques sur une facture via le BO ou lorsqu'un client clique sur une facture dans son compte.
Le préfixe facture est global, donc si tu le modifies aujourd'hui, les factures d'hier auront aussi ce préfixe.
A+

Link to comment
Share on other sites

Bonsoir et merci juliens pour ta reponse, encore heureux que je m'en suis rendu compte maintenant car pour le moment, je n'ai pas eu de question embarassante de clients qui se demanderai pourquoi le numéro de facture n'est pas le meme qu'au début :)
J'ai donc remis le prefixe que j'avait au début :-)
C'est dommage que le prefixe de la facture ne soit pas enregistré comme le numéro, cela permetrai de le changer lorsque l'on veu que celui-ci soit associé à l'année en cours.
Bonne fin de soirée
Steph

Link to comment
Share on other sites

Il y a un moyen d'obtenir ce que tu veux mais il faut coder.

L'idée : définir le prefixe de manière dynamique

Il faut modifier tous les templates afin que le numéro de facture soit :

substr(invoice_date,0,4).str_pad(invoice_id, 10, '0', STR_PAD_LEFT);



Ou alors, trouver la fonction qui formate le numéro de facture

Link to comment
Share on other sites

Voici donc la solution pour ajouter automatiquement l'année de commande comme préfixe au numéro de facture.

Dans le fichier /admincp/tabs/AdminOrder.php, remplacer :

       /* Display invoice information */
       if (($currentState->invoice OR $order->invoice_number) AND count($products))
       echo '

id.'&pdf;"> '.$this->l('Invoice').'
id.'&pdf;">'.$this->l('Invoice #').''.Configuration::get('PS_INVOICE_PREFIX', intval($cookie->id_lang)).sprintf('d', $order->invoice_number).'

'.$this->l('Created on:').' '.$order->invoice_date.'

';



par

       /* Display invoice information */
       if (($currentState->invoice OR $order->invoice_number) AND count($products))
       echo '

id.'&pdf;"> '.$this->l('Invoice').'
id.'&pdf;">'.$this->l('Invoice #').''.substr($order->invoice_date,0,4).sprintf('d', $order->invoice_number).'

'.$this->l('Created on:').' '.$order->invoice_date.'

';



Dans le fichier /classes/PDF.php, remplacer la ligne commençant par :

$this->Cell(77, 10, self::l('INVOICE #') ...



par

           $this->Cell(77, 10, self::l('INVOICE #').' '.substr(self::$order->invoice_date,0,4).sprintf('d', self::$order->invoice_number), 0, 1, 'R');



et replacer la ligne commençant par :

$pdf->Cell(0, 6, self::l('INVOICE #')



par

$pdf->Cell(0, 6, self::l('INVOICE #').substr(self::$order->invoice_date,0,4).sprintf('d', self::$order->invoice_number).' '.self::l('from') . ' ' .Tools::displayDate(self::$order->invoice_date, self::$order->id_lang), 1, 2, 'L', 1);



A noter que cette modification annule la gestion du préfixe positionné dans le BO

Fais une sauvegarde de ces deux fichiers avant de les modifier.

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