Jump to content

Numerotation factures


Recommended Posts

Bonjour,

 

Par defaut, prestashop propose une numerotation pour les factures avec un prefixe suivi d'un numero d'ordre dans l'annee

Mon comptable me demande un numero de facture en AAAA-MM-numero_d_ordre_annuel

 

Comment je peux faire ca ?

 

Prestashop : 1.5.6.1

 

Merci

Link to comment
Share on other sites

Salut,

 

Effectivement, ça serait une belle fonctionnalité supplémentaire si on laissait la possilité au commerçant de choisir ses propres constructions "automatiques" de préfixe.

 

Quelque chose à la manière de la gestion de route du dispatcher. Dans la configuration du préfixe (Commandes > Factures > Options des factures), on pourrait mettre à la place de FA , IN etc :

 

{AAAA}_{MM}_

 

Et le traitement remplacerait automatiquement les variables par celles disponibles de la facture en cours.

 

Sachant que l'appel de la configuration est PS_INVOICE_PREFIX, il n'existe pas non plus beaucoup de fichiers à modifier pour y parvenir :

./admindev/themes/default/template/controllers/orders/_product_line.tpl:
  137  		<select name="product_invoice" class="edit_product_invoice">
  138  			{foreach from=$invoices_collection item=invoice}
  139: 			<option value="{$invoice->id}" {if $invoice->id == $product['id_order_invoice']}selected="selected"{/if}>#{Configuration::get('PS_INVOICE_PREFIX', $current_id_lang, null, $order->id_shop)}{'%06d'|sprintf:$invoice->number}</option>
  140  			{/foreach}
  141  		</select>

./classes/PaymentModule.php:
  623  							$pdf = new PDF($order->getInvoicesCollection(), PDF::TEMPLATE_INVOICE, $this->context->smarty);
  624  							$file_attachement['content'] = $pdf->render(false);
  625: 							$file_attachement['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null, $order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf';
  626  							$file_attachement['mime'] = 'application/pdf';
  627  						}

./classes/order/OrderHistory.php:
  419  					$pdf = new PDF($order->getInvoicesCollection(), PDF::TEMPLATE_INVOICE, $context->smarty);
  420  					$file_attachement['content'] = $pdf->render(false);
  421: 					$file_attachement['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null, $order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf';
  422  					$file_attachement['mime'] = 'application/pdf';
  423  				}

./classes/order/OrderInvoice.php:
  665  	public function getInvoiceNumberFormatted($id_lang, $id_shop = null)
  666  	{
  667: 		return '#'.Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, $id_shop).sprintf('%06d', $this->number);
  668  	}
  669  

./classes/pdf/HTMLTemplateInvoice.php:
   43  
   44  		$id_lang = Context::getContext()->language->id;
   45: 		$this->title = HTMLTemplateInvoice::l('Invoice ').' #'.Configuration::get('PS_INVOICE_PREFIX', $id_lang, null, (int)$this->order->id_shop).sprintf('%06d', $order_invoice->number);
   46  		// footer informations
   47  		$this->shop = new Shop((int)$this->order->id_shop);
   ..
  140  	public function getFilename()
  141  	{
  142: 		return Configuration::get('PS_INVOICE_PREFIX', Context::getContext()->language->id, null, $this->order->id_shop).sprintf('%06d', $this->order_invoice->number).'.pdf';
  143  	}
  144  }
A+ Edited by DevNet (see edit history)
Link to comment
Share on other sites

Merci pour vos reponses,

 

Je n'ai pas vraiment trouve dans le forum de topics parlant du sujet de numerotation, a part des vieux topics sur des ps 1.2 (c'est la derniere version avec les tabs non ?)

 

J'en suis arrive a la meme conclusion que DevNet, il n'y a pas tant de choses que ca a modifier pour faire ce dont j'ai besoin.

Par contre, j'ai lu que la modification du prefixe modifiait l'integralite des factures, passees et futures. Est ce qu'on va pas "perdre" des factures, parce que impossible de retrouver la date de la facture ?

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