diff options
Diffstat (limited to 'talerbank/app/models.py')
-rw-r--r-- | talerbank/app/models.py | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/talerbank/app/models.py b/talerbank/app/models.py index 0543fbb..f87caa2 100644 --- a/talerbank/app/models.py +++ b/talerbank/app/models.py @@ -28,13 +28,34 @@ class BankAccount(models.Model): currency = models.CharField(max_length=12, default="") account_no = models.AutoField(primary_key=True) user = models.OneToOneField(User, on_delete=models.CASCADE) - + def _get_balance(self): + return dict(value=self.balance_value, + fraction=self.balance_fraction, + currency=self.currency) + def _set_balance(self, amount): + self.balance_value = amount["value"] + self.balance_fraction = amount["fraction"] + self.currency = amount["currency"] + balance_obj = property(_get_balance, _set_balance) class BankTransaction(models.Model): amount_value = models.IntegerField(default=0) amount_fraction = models.IntegerField(default=0) currency = models.CharField(max_length=12) - debit_account = models.ForeignKey(BankAccount, on_delete=models.CASCADE, related_name="debit_account") - credit_account = models.ForeignKey(BankAccount, on_delete=models.CASCADE, related_name="credit_account") + debit_account = models.ForeignKey(BankAccount, + on_delete=models.CASCADE, + related_name="debit_account") + credit_account = models.ForeignKey(BankAccount, + on_delete=models.CASCADE, + related_name="credit_account") subject = models.CharField(default="(no subject given)", max_length=200) date = models.DateTimeField(auto_now=True) + def _get_amount(self): + return dict(value=self.amount_value, + fraction=self.amount_fraction, + currency=self.currency) + def _set_amount(self, amount): + self.amount_value = amount["value"] + self.amount_fraction = amount["fraction"] + self.currency = amount["currency"] + amount_obj = property(_get_amount, _set_amount) |