diff --git a/web/src/pages/Dashboard.vue b/web/src/pages/Dashboard.vue
index 076375c..145f64e 100644
--- a/web/src/pages/Dashboard.vue
+++ b/web/src/pages/Dashboard.vue
@@ -3,10 +3,6 @@ import NewBudget from '../dialogs/NewBudget.vue';
import RowCard from '../components/RowCard.vue';
import { useSessionStore } from '../stores/session';
-const props = defineProps<{
- budgetid: string,
-}>();
-
const BudgetsList = useSessionStore().BudgetsList;
@@ -24,7 +20,7 @@ const BudgetsList = useSessionStore().BudgetsList;
{{ budget.Name
- }}{{ budget.ID == budgetid ? " *" : "" }}
+ }}
diff --git a/web/src/stores/transactions.ts b/web/src/stores/transactions.ts
index 26373e6..1e4d6d0 100644
--- a/web/src/stores/transactions.ts
+++ b/web/src/stores/transactions.ts
@@ -8,6 +8,7 @@ interface State {
Transactions: Map
;
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: {
@@ -80,8 +86,24 @@ export const useTransactionsStore = defineStore("budget/transactions", {
const budgetStore = useBudgetsStore();
const result = await GET("/budget/" + budgetStore.CurrentBudgetID + "/problematic-transactions");
const response = await result.json();
- this.AddTransactions(response.Transactions);
- this.ProblematicTransactions = [...response.Transactions.map((x : Transaction) => x.ID)];
+ const transactions = response.Transactions ?? [];
+ this.AddTransactions(transactions);
+ this.ProblematicTransactions = [...transactions?.map((x : Transaction) => x.ID)];
+ },
+ async GetFilteredTransactions(accountID : string | null, categoryID : string | null, payeeID : string | null, fromDate : string, toDate : string) {
+ const budgetStore = useBudgetsStore();
+ const payload = JSON.stringify({
+ category_id: categoryID,
+ payee_id: payeeID,
+ account_id: accountID,
+ from_date: fromDate,
+ to_date: toDate,
+ });
+ const result = await POST("/budget/" + budgetStore.CurrentBudgetID + "/filtered-transactions", payload);
+ const response = await result.json();
+ const transactions = response.Transactions ?? [];
+ this.AddTransactions(transactions);
+ this.FilteredTransactions = [...transactions.map((x : Transaction) => x.ID)];
},
async SubmitReconcilation(reconciliationTransactionAmount: number) {
const accountsStore = useAccountStore();