Calculate available balance locally

This commit is contained in:
Jan Bader 2022-03-03 10:44:50 +00:00
parent 0038db90ac
commit 67c013799d
2 changed files with 8 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import Currency from "../components/Currency.vue";
import { useBudgetsStore } from "../stores/budget";
import { useAccountStore } from "../stores/budget-account";
import { useSessionStore } from "../stores/session";
import Input from "../components/Input.vue";
const props = defineProps<{
budgetid: string,
@ -92,9 +93,9 @@ function getGroupState(group: { Name: string, Expand: boolean }): boolean {
<template v-for="category in GetCategories(group.Name)" v-if="getGroupState(group)">
<span class="whitespace-nowrap overflow-hidden">{{ category.Name }}</span>
<Currency :value="category.AvailableLastMonth" class="hidden lg:block" />
<Currency :value="category.Assigned" class="hidden sm:block" />
<Input type="number" v-model="category.Assigned" class="hidden sm:block mx-2 text-right" />
<Currency :value="category.Activity" class="hidden sm:block" />
<Currency :value="category.Available" />
<Currency :value="accountStore.GetCategoryAvailable(category)" />
</template>
</template>
</div>

View File

@ -31,7 +31,6 @@ export interface Category {
AvailableLastMonth: number
Assigned: number
Activity: number
Available: number
}
export const useAccountStore = defineStore("budget/account", {
@ -51,6 +50,11 @@ export const useAccountStore = defineStore("budget/account", {
const monthMap = yearMap?.get(month);
return [...monthMap?.values() || []];
},
GetCategoryAvailable(state) {
return (category : Category) : number => {
return category.AvailableLastMonth + Number(category.Assigned) + category.Activity;
}
},
CategoryGroupsForMonth(state) {
return (year: number, month: number) => {
const categories = this.AllCategoriesForMonth(year, month);