diff options
Diffstat (limited to 'talerbank/app/models.py')
-rw-r--r-- | talerbank/app/models.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/talerbank/app/models.py b/talerbank/app/models.py new file mode 100644 index 0000000..45bffdb --- /dev/null +++ b/talerbank/app/models.py @@ -0,0 +1,52 @@ +""" + This file is part of TALER + (C) 2014, 2015, 2016 INRIA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + + @author Marcello Stanisci +""" + +from __future__ import unicode_literals +from django.contrib.auth.models import User +from django.db import models + + +class BankAccount(models.Model): + is_public = models.BooleanField(default=False) + balance = models.FloatField(default=0) + currency = models.CharField(max_length=12, default="") + # this value (below) needs not to be unique in some cases: for + # example when an http and https exchanges want to have the same + # bank account number + account_no = models.AutoField(primary_key=True) + user = models.OneToOneField(User, + on_delete=models.CASCADE) + + +class History(models.Model): + amount = models.FloatField(default=0) + currency = models.CharField(max_length=12) + direction = models.CharField(max_length=4) + counterpart = models.CharField(default="unknown", max_length=200) + subject = models.CharField(default="not given", max_length=200) + date = models.DateField(auto_now=True) + account = models.ForeignKey(BankAccount, on_delete=models.CASCADE) + + def set_balance(self, new_balance): + if isinstance(new_balance, int) or isinstance(new_balance, float): + self.balance = new_balance + else: + print("Not a number given for new balance") + + def push_history(self, obj): + self.history.append(obj) |