Jump to content

[PS1.4.11.0] Prix faux sur les commandes/factures


Recommended Posts

Dans la mesure où la forge n'accepte plus de bug report pour la 1.4, je poste ici.

 

CAUSE

======

La fonction Order::setProductPrice() retourne des prix faux, ceci impacte les récaps de commande et les factures.

	public function setProductPrices(&$row)
	{
		$row['product_price'] = Tools::ps_round($row['product_price'], 2);
		$row['product_price_wt'] = Tools::ps_round($row['product_price'] * (1 + $row['tax_rate'] / 100), 2);

La première ligne arroundi le prix HT qui va être utilisé plus tard. Les résulats sont donc faux.

 

Example: prix_HT 2.375, TVA 20%  => prix_TTC 2.85

Ici round(2.375) = 2.38 et 2.238 * 1.2 = 2.856 => 2.86

 

CORRECTIF

==========

	public function setProductPrices(&$row)
	{
		if ($this->_taxCalculationMethod == PS_TAX_EXC)
			$row['product_price'] = Tools::ps_round($row['product_price'], 2);
		else
			$row['product_price_wt'] = Tools::ps_round($row['product_price'] * (1 + $row['tax_rate'] / 100), 2);

Pour information ce code est celui de la 1.4.9, la modification et est en rapport avec:

http://forge.prestashop.com/browse/PSCFI-7249

et

https://github.com/PrestaShop/PrestaShop-1.4/commit/a47d96ef494d4f783b946bbb76b3d84829c23ee7#commitcomment-5061911

 

 

IMPACT

======

Il s'agit d'un bug majeur, surtout depuis le changement de TVA. Si vos prix TTC sont ronds plus de 15% des prix de vos boutiques vont générer ce type d'erreur. Facture fausse et autres joyeusetés.

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