def save(self, account: Account):
     customer = self.findCustomerDBObjectById(account.idCustomer)
     account_db = AccountDb()
     account_db.account_id = account.id
     account_db.customer = customer
     account_db.opening_date = account.OpeningDate.date
     account_db.status = int(account.status)
     account_db.balance = account.balance
     account_db.save()
Esempio n. 2
0
    def do_transfer(from_account: Account, to_account: Account,
                    amount: Decimal):
        Transfer.validate_transaction_params(from_account, to_account, amount)
        is_updated = Account.objects.filter(
            id=from_account.id,
            balance__gte=amount).update(balance=F('balance') - amount)

        if not is_updated:
            raise InsufficientFunds()

        to_account.balance = F('balance') + amount
        to_account.save()

        return Transfer.objects.create(from_account=from_account,
                                       to_account=to_account,
                                       amount=amount)
Esempio n. 3
0
 def get_balance(self, account: Account, **kwargs) -> Account:
     account.balance = account.current_balance / 100
     return account