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