diff --git a/postgres/accounts.sql.go b/postgres/accounts.sql.go index dd559fd..e913dd0 100644 --- a/postgres/accounts.sql.go +++ b/postgres/accounts.sql.go @@ -5,6 +5,7 @@ package postgres import ( "context" + "time" "git.javil.eu/jacob1123/budgeteer/postgres/numeric" "github.com/google/uuid" @@ -87,6 +88,7 @@ func (q *Queries) GetAccounts(ctx context.Context, budgetID uuid.UUID) ([]Accoun const getAccountsWithBalance = `-- name: GetAccountsWithBalance :many SELECT accounts.id, accounts.name, accounts.on_budget, + (SELECT MAX(transactions.date) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.status = 'Reconciled')::date as last_reconciled, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW())::decimal(12,2) as working_balance, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW() AND transactions.status IN ('Cleared', 'Reconciled'))::decimal(12,2) as cleared_balance, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW() AND transactions.status = 'Reconciled')::decimal(12,2) as reconciled_balance @@ -99,6 +101,7 @@ type GetAccountsWithBalanceRow struct { ID uuid.UUID Name string OnBudget bool + LastReconciled time.Time WorkingBalance numeric.Numeric ClearedBalance numeric.Numeric ReconciledBalance numeric.Numeric @@ -117,6 +120,7 @@ func (q *Queries) GetAccountsWithBalance(ctx context.Context, budgetID uuid.UUID &i.ID, &i.Name, &i.OnBudget, + &i.LastReconciled, &i.WorkingBalance, &i.ClearedBalance, &i.ReconciledBalance, diff --git a/postgres/queries/accounts.sql b/postgres/queries/accounts.sql index f3a4f74..5232c9d 100644 --- a/postgres/queries/accounts.sql +++ b/postgres/queries/accounts.sql @@ -15,6 +15,7 @@ ORDER BY accounts.name; -- name: GetAccountsWithBalance :many SELECT accounts.id, accounts.name, accounts.on_budget, + (SELECT MAX(transactions.date) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.status = 'Reconciled')::date as last_reconciled, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW())::decimal(12,2) as working_balance, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW() AND transactions.status IN ('Cleared', 'Reconciled'))::decimal(12,2) as cleared_balance, (SELECT SUM(transactions.amount) FROM transactions WHERE transactions.account_id = accounts.id AND transactions.date < NOW() AND transactions.status = 'Reconciled')::decimal(12,2) as reconciled_balance diff --git a/web/src/pages/Account.vue b/web/src/pages/Account.vue index 6e14d9b..53932e2 100644 --- a/web/src/pages/Account.vue +++ b/web/src/pages/Account.vue @@ -41,25 +41,25 @@ function createReconcilationTransaction() {