From 093c7ffb0eec952b111baf21613f5d8efec27184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delobelle?= Date: Tue, 23 Aug 2016 03:27:02 +0200 Subject: [PATCH] Annulation et balance de caisses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Une opération annulée alors qu'il y a eu un relevé depuis ne modifie plus la balance de la caisse - Fix maj balance caisse lors d'une annulation sur LIQ --- kfet/views.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/kfet/views.py b/kfet/views.py index c1b39550..2b7ed195 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -872,12 +872,22 @@ def kpsul_cancel_operations(request): to_accounts_balances[ope.addcost_for] -= ope.addcost_amount # Pour les groupes d'opés to_groups_amounts[ope.group] -= ope.amount + # Pour les balances de caisses - if ope.type == Operation.PURCHASE: - if ope.group.on_acc.is_cash: - to_checkouts_balances[ope.group.on_acc] -= - ope.amount - else: - to_checkouts_balances[ope.group.checkout] -= ope.amount + # Les balances de caisses dont il y a eu un relevé depuis la date + # de la commande ne doivent pas être modifiées + # TODO ? : Maj les balance_old de relevés pour modifier l'erreur + last_statement = (CheckoutStatement.objects + .filter(checkout=ope.group.checkout) + .order_by('at') + .last()) + if not last_statement or last_statement.at < ope.group.at: + if ope.type == Operation.PURCHASE: + if ope.group.on_acc.is_cash: + to_checkouts_balances[ope.group.checkout] -= - ope.amount + else: + to_checkouts_balances[ope.group.checkout] -= ope.amount + # Pour les stocks d'articles if ope.article and ope.article_nb: to_articles_stocks[ope.article] += ope.article_nb