Skip to content

Commit 2f571e6

Browse files
authored
fix: do not add deleted transactions to account sum (#251)
1 parent 3e76ded commit 2f571e6

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

pkg/models/account.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,14 @@ func TransactionsSum(incoming, outgoing Transaction) decimal.Decimal {
9191

9292
_ = database.DB.Table("transactions").
9393
Where(&outgoing).
94+
Where("deleted_at is NULL").
9495
Select("SUM(amount)").
9596
Row().
9697
Scan(&outgoingSum)
9798

9899
_ = database.DB.Table("transactions").
99100
Where(&incoming).
101+
Where("deleted_at is NULL").
100102
Select("SUM(amount)").
101103
Row().
102104
Scan(&incomingSum)

pkg/models/account_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,15 @@ func (suite *TestSuiteEnv) TestAccountCalculations() {
9191
assert.True(suite.T(), a.Balance.Equal(incomingTransaction.Amount.Sub(outgoingTransaction.Amount)), "Balance for account is not correct. Should be: %v but is %v", incomingTransaction.Amount.Sub(outgoingTransaction.Amount), a.Balance)
9292

9393
assert.True(suite.T(), a.ReconciledBalance.Equal(incomingTransaction.Amount), "Reconciled balance for account is not correct. Should be: %v but is %v", incomingTransaction.Amount, a.ReconciledBalance)
94+
95+
err = database.DB.Delete(&incomingTransaction).Error
96+
if err != nil {
97+
suite.Assert().Fail("Resource could not be deleted", err)
98+
}
99+
100+
a = account.WithCalculations()
101+
assert.True(suite.T(), a.Balance.Equal(outgoingTransaction.Amount.Neg()), "Balance for account is not correct. Should be: %v but is %v", outgoingTransaction.Amount.Neg(), a.Balance)
102+
assert.True(suite.T(), a.ReconciledBalance.Equal(decimal.NewFromFloat(0)), "Reconciled balance for account is not correct. Should be: %v but is %v", decimal.NewFromFloat(0), a.ReconciledBalance)
94103
}
95104

96105
func (suite *TestSuiteEnv) TestAccountTransactions() {

pkg/models/envelope_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,12 @@ func (suite *TestSuiteEnv) TestEnvelopeMonthSum() {
9696

9797
envelopeMonth = envelope.Month(time.Date(2022, 2, 1, 0, 0, 0, 0, time.UTC))
9898
assert.True(suite.T(), envelopeMonth.Spent.Equal(spent.Neg()), "Month calculation for 2022-02 is wrong: should be %v, but is %v", spent, envelopeMonth.Spent)
99+
100+
err = database.DB.Delete(&transaction).Error
101+
if err != nil {
102+
suite.Assert().Fail("Resource could not be deleted", err)
103+
}
104+
105+
envelopeMonth = envelope.Month(time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC))
106+
assert.True(suite.T(), envelopeMonth.Spent.Equal(decimal.NewFromFloat(0)), "Month calculation for 2022-01 is wrong: should be %v, but is %v", decimal.NewFromFloat(0), envelopeMonth.Spent)
99107
}

0 commit comments

Comments
 (0)