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()
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)
def get_balance(self, account: Account, **kwargs) -> Account: account.balance = account.current_balance / 100 return account