@@ -22,10 +22,10 @@ func (repo Repository) BeginTransaction(ctx context.Context, callback func(ctxWi
22
22
return utils .BeginDbTransaction (ctx , repo .db , callback )
23
23
}
24
24
25
- func (repo Repository ) GetTransactionList (ctx context.Context , query string , sortBy string , order string , skip int , limit int ) ([]transactions.Transaction , error ) {
25
+ func (repo Repository ) GetTransactionList (ctx context.Context , query string , sortBy string , order string , skip int , limit int , paymentStatus transactions. PaymentStatus ) ([]transactions.Transaction , error ) {
26
26
db := utils .GetDbFromCtx (ctx , repo .db )
27
27
28
- var transactions []transactions.Transaction
28
+ var transactionResults []transactions.Transaction
29
29
result := db .Table ("transactions" ).Where ("deleted_at is NULL" ).Preload ("TransactionItems" ).Preload ("Wallet" )
30
30
31
31
if sortBy != "" && order != "" {
@@ -44,12 +44,19 @@ func (repo Repository) GetTransactionList(ctx context.Context, query string, sor
44
44
result = result .Limit (limit )
45
45
}
46
46
47
- result = result .Find (& transactions )
47
+ switch paymentStatus {
48
+ case transactions .Paid :
49
+ result = result .Where ("paid_at IS NOT NULL" )
50
+ case transactions .Unpaid :
51
+ result = result .Where ("paid_at IS NULL" )
52
+ }
53
+
54
+ result = result .Find (& transactionResults )
48
55
49
- return transactions , result .Error
56
+ return transactionResults , result .Error
50
57
}
51
58
52
- func (repo Repository ) GetTransactionListTotal (ctx context.Context , query string ) (int64 , error ) {
59
+ func (repo Repository ) GetTransactionListTotal (ctx context.Context , query string , paymentStatus transactions. PaymentStatus ) (int64 , error ) {
53
60
db := utils .GetDbFromCtx (ctx , repo .db )
54
61
var count int64
55
62
result := db .Table ("transactions" ).Where ("deleted_at" , nil )
@@ -58,6 +65,13 @@ func (repo Repository) GetTransactionListTotal(ctx context.Context, query string
58
65
result = result .Where ("name LIKE ?" , "%" + query + "%" )
59
66
}
60
67
68
+ switch paymentStatus {
69
+ case transactions .Paid :
70
+ result = result .Where ("paid_at IS NOT NULL" )
71
+ case transactions .Unpaid :
72
+ result = result .Where ("paid_at IS NULL" )
73
+ }
74
+
61
75
result = result .Count (& count )
62
76
63
77
return count , result .Error
0 commit comments