Jump to content

Bug? Commande ok, PU éroné dans BO et facture PDF (reduction groupe appliquée 2 fois)


Recommended Posts

Bonjour,

je me rends compte d'un souci, je ne sais pas s'il est général à la V1.4.0.17 où si c'est moi qui ait cassé quelquechose:

1 groupe revendeur 50% reduction, tarif HT

Commande d'articles par un client dans ce groupe, le montant est correctement calculé pour le paiement et l'expédition ainsi que dans le FO.
Le mail de confirmation de commande est ok (bons tarifs)

Au moment de l'édition de la facture et dans la page du détail de la commande en BO, la réduction du groupe revendeur est réappliquée, càd que le détail des produits affiche un PU avec 50% de réduction supplémentaire...
Idem pour la facture PDF...

Au niveau code, on voit qu'il va chercher les produits en récupérant les infos dans la table ps_order où la réduction est déja appliquée. Et qu'il réapplique la réduction ligne 429 de order.php (fonction setProductPrices)

je sais pas si c'est un bug, j'ai cherché dans le bugtracker mais rien trouvé qui correspondait exactement.
Si qqun à eu le souci ou si c'est un bug et qu'il a été corrigé, je veux bien le détail parce que j'ai fait des modifs dans le code et je veux pas me lancer sur une maj.

Merci d'avance.

Link to comment
Share on other sites

J'ai trouvé (suis content)

===========================================================
but: envoyer dans ps_order_detail le prix (product_price) sans aucune réduction (pas même celle de groupe)
==================================================>
Classes/Product.php ligne 1836

   if ($use_reduc)
       $price -= $reduc;

   // Group reduction
   if ($reductionFromCategory = (float)(GroupReduction::getValueForProduct($id_product, $id_group)))
       $price -= $price * $reductionFromCategory;
   else // apply group reduction if there is no group reduction for this category
       $price *= ((100 - Group::getReductionByIdGroup($id_group)) / 100);


devient

   if ($use_reduc){
       $price -= $reduc;

   // Group reduction
   if ($reductionFromCategory = (float)(GroupReduction::getValueForProduct($id_product, $id_group)))
       $price -= $price * $reductionFromCategory;
   else // apply group reduction if there is no group reduction for this category
       $price *= ((100 - Group::getReductionByIdGroup($id_group)) / 100);
   }



Je ne sais toujours pas si c'est un bug et si ça a été résolu mais si un admin veut jeter un oeil dessus...

Link to comment
Share on other sites

  • 4 months later...

bonjour,

 

pour moi ça n'est pas suffisant. je viens de découvrir que la remise par groupe était déjà appliquée une première fois dans classes/Order.php.

 

donc dans l'ordre : le système applique la remise de groupe depuis Order.php

puis applique la réduction éventuelle (promo) dans Product.php

puis le cas échéant applique une nouvelle fois la remise de groupe dans product.php

 

ce qui a deux effets que j'ai vérifié sur mes cas de figure qui ne fonctionaient pas bien.

1) la promo est appliquée après la première reduc de groupe (si c'est un montant ça cause le pb de l'ordre)

2) une seconde remise de groupe est appliquée.

 

solution : supprimer la première remise de groupe faite dans Order.php qui fait doublon.

 

et là tout fonctionne.

Par contre pour les factures passées je suis obligé d'aller modifier la table de la base de données.

Pour les nouvelles c'est bon</p>

 

j'ai juste provisoirement mis en commentaire les lignes 769 et 768 du Order.php<

 

      if ($row['group_reduction'])<br />
			  $price -= $price * ($row['group_reduction'] * 0.01);

 

ce qui devient :

 

	   // if ($row['group_reduction'])<br />
			  // $price -= $price * ($row['group_reduction'] * 0.01);

 

 

A noter quand même que le pb se posera peut-être aussi sur d'autres trucs en doublon entre les deux fichiers.

 

J'espère avoir un avis de la prestateam ..

 

Bruno

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