diff --git a/web/src/pages/AllAccounts.vue b/web/src/pages/AllAccounts.vue
index 7ced986..f7a2c74 100644
--- a/web/src/pages/AllAccounts.vue
+++ b/web/src/pages/AllAccounts.vue
@@ -1,5 +1,5 @@
@@ -54,7 +58,7 @@ const filters = ref({
Account:
Payee:
-
+
Category:
@@ -69,7 +73,7 @@ const filters = ref({
Amount |
;
Reconciling: boolean;
ProblematicTransactions: Array;
+ FilteredTransactions: Array;
}
export interface Transaction {
@@ -33,6 +34,7 @@ export const useTransactionsStore = defineStore("budget/transactions", {
Transactions: new Map(),
Reconciling: false,
ProblematicTransactions: new Array(),
+ FilteredTransactions: new Array(),
}),
getters: {
ReconcilingBalance(state): number {
@@ -47,7 +49,8 @@ export const useTransactionsStore = defineStore("budget/transactions", {
},
TransactionsByDate(state) : Record {
const accountsStore = useAccountStore();
- const allTransactions = [...this.Transactions.values()];
+ const accountID = accountsStore.CurrentAccountID;
+ const allTransactions = [...this.Transactions.values()].filter(x => x.AccountID == accountID);
return groupBy(allTransactions, x => formatDate(x.Date));
},
TransactionsList(state) : Transaction[] {
@@ -58,6 +61,9 @@ export const useTransactionsStore = defineStore("budget/transactions", {
},
ProblematicTransactionsList(state) : Transaction[] {
return [...state.ProblematicTransactions.map(x => state.Transactions!.get(x)!)];
+ },
+ FilteredTransactionsList(state) : Transaction[] {
+ return [...state.FilteredTransactions.map(x => state.Transactions!.get(x)!)];
}
},
actions: {
@@ -83,6 +89,18 @@ export const useTransactionsStore = defineStore("budget/transactions", {
this.AddTransactions(response.Transactions);
this.ProblematicTransactions = [...response.Transactions.map((x : Transaction) => x.ID)];
},
+ async GetFilteredTransactions(accountID : string | null, categoryID : string | null, payeeID : string | null) {
+ const budgetStore = useBudgetsStore();
+ const payload = JSON.stringify({
+ category_id: categoryID,
+ payee_id: payeeID,
+ account_id: accountID,
+ });
+ const result = await POST("/budget/" + budgetStore.CurrentBudgetID + "/filtered-transactions", payload);
+ const response = await result.json();
+ this.AddTransactions(response.Transactions);
+ this.FilteredTransactions = [...response.Transactions.map((x : Transaction) => x.ID)];
+ },
async SubmitReconcilation(reconciliationTransactionAmount: number) {
const accountsStore = useAccountStore();
const account = accountsStore.CurrentAccount!;