don't allow adding balance modification transaction when account already has other transaction

This commit is contained in:
MaysWind
2020-12-08 01:59:37 +08:00
parent 7b7df2e853
commit 05f11a54a2
4 changed files with 12 additions and 1 deletions
+9 -1
View File
@@ -200,8 +200,16 @@ func (s *TransactionService) CreateTransaction(transaction *models.Transaction)
return errs.ErrTransactionCategoryTypeInvalid
}
// Calculate balance modification transaction real amount
// Verify balance modification transaction and calculate real amount
if transaction.Type == models.TRANSACTION_TYPE_MODIFY_BALANCE {
otherTransactionExists, err := sess.Where("uid=? AND deleted=? AND destination_account_id=?", transaction.Uid, false, destinationAccount.AccountId).Limit(1).Exist(&models.Transaction{})
if err != nil {
return err
} else if otherTransactionExists {
return errs.ErrBalanceModificationTransactionCannotAddWhenNotEmpty
}
transaction.DestinationAmount = transaction.SourceAmount - destinationAccount.Balance
}