gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-bank] branch master updated: fixing #5889


From: gnunet
Subject: [GNUnet-SVN] [taler-bank] branch master updated: fixing #5889
Date: Mon, 16 Sep 2019 21:14:06 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new 4043cac  fixing #5889
4043cac is described below

commit 4043cac59d8aac105663432a33a162f8546cb3f5
Author: Christian Grothoff <address@hidden>
AuthorDate: Mon Sep 16 21:14:03 2019 +0200

    fixing #5889
---
 talerbank/app/views.py | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 3762ddf..a5e7b26 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -803,8 +803,34 @@ def reject(request, user_account):
             user_account.bankaccount.account_no:
         raise RejectNoRightsException()
     trans.cancelled = True
-    trans.debit_account.amount.add(trans.amount)
-    trans.credit_account.amount.subtract(trans.amount)
+    if trans.debit_account.debit:
+        # balance is negative
+        if 1 > Amount.cmp(trans.debit_account.amount, trans.amount):
+            # debit_account.amount <= trans.amount
+            trans.debit_account.debit = False
+            tmp = Amount(**trans.amount.dump())
+            tmp.subtract (trans.debit_account.amount)
+            trans.debit_account.amount.set (**tmp.dump())
+        else:
+            # debit_account > trans.amount
+            trans.debit_account.amount.subtract (trans.amount)
+    else:
+        # balance is positive, simply add
+        trans.debit_account.amount.add(trans.amount)
+    if trans.credit_account.debit:
+        # credit account balance is already negative
+        trans.credit_account.amount.add(trans.amount)
+    else:
+        if -1 == Amount.cmp(trans.credit_account.amount, trans.amount):
+            # credit_account.amount < trans.amount
+            trans.credit_account.debit = True
+            tmp = Amount(**trans.amount.dump())
+            tmp.subtract (trans.credit_account.amount)
+            trans.credit_account.amount.set (**tmp.dump())
+        else:
+            # credit_account.amount >= trans.amount
+            trans.credit_account.amount.subtract(trans.amount)
+
     trans.save()
     return HttpResponse(status=204)
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]