Jump to content

Bug sur le montant total de la facture lors de modification.


m1bs

Recommended Posts

Merci de me confirmer si vous êtes déjà au courant de ceci :
Un client passe une commande avec

1 x article chat 50 EUR
1 x article chien 100 EUR

Je vais dans le back-office pour modifier sa commande, je supprime l'article chat, le montant total n'est pas recalculé ni dans l'historique ni sur le document.

Obtenez-vous le même résultat ? ( 1.1 )

Link to comment
Share on other sites

Dans le statut de la commande ces trois éléments sont décochés :

Considérer la commande associée comme validée
Autoriser le client à voir et télécharger sa facture PDF
Envoyer un e-mail au client lors du passage à cet état

En fait pourquoi ça me cause problème c'est que je crée un module qui récupère le solde du document à payer dans la base de donnée.
Résultat on a le détail du document qui ne concorde pas avec le total du document. ( l'historique aussi ne correspond donc plus )

Link to comment
Share on other sites

juste pour info s'agit-il d'un comportement normal ?

"le total n’est juste pas recalculé du tout a priori"

oui effectivement, on peut à la limite le vider le document complet le montant total reste donc il ne s'agit pas d'un simple refresh. Dans le cas
présent on peut se retrouver avec une commande à 10000.- avec 0 article dedans.

Link to comment
Share on other sites

  • 1 month later...

il s'agit effectivement d'un bug dans la version 1.1 qui a été fixé dans le svn.
pour "patcher" ce bug :

1) remplacer la Public function deleteProduct dans classes/Order.php par celle çi:

public function deleteProduct($order, $orderDetail, $quantity)
   {
       if (!$currentStatus = intval($this->getCurrentState()))
           return false;

       if ($this->hasBeenDelivered())
       {
           $orderDetail->product_quantity_return += intval($quantity);
           return $orderDetail->update();
       }
       elseif ($this->hasBeenPaid())
       {
           $orderDetail->product_quantity_cancelled +=  intval($quantity);
           return $orderDetail->update();
       }
       else
       {
           $productPrice = (floatval($orderDetail->product_price) * (1 + (floatval($orderDetail->tax_rate) * 0.01))) * intval($quantity);
           $productPriceWithoutTax = floatval($orderDetail->product_price) * intval($quantity);
           // Update order
           $order->total_paid -= $productPrice;
           $order->total_paid_real -= $productPrice;
           $order->total_products -= $productPriceWithoutTax;
           // Update order detail
           $orderDetail->product_quantity -= intval($quantity);

           if (!$orderDetail->product_quantity)
               return $orderDetail->delete();
           return $orderDetail->update() AND $order->update();
       }
   }



2) dans classes/PayementModule.php supprimer cette ligne:

$order->total_paid_real = floatval(number_format($amountPaid, 2, '.', ''));



ça devrai marcher maintenant, mais faite toujours une sauvegarde de vos 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...