fix: expenses shows total balance instead of deducted balance

This commit is contained in:
juancwu 2026-02-13 00:59:44 +00:00
commit c82c7865b6

View file

@ -405,6 +405,13 @@ func (h *SpaceHandler) ExpensesPage(w http.ResponseWriter, r *http.Request) {
return
}
totalAllocated, err := h.accountService.GetTotalAllocatedForSpace(spaceID)
if err != nil {
slog.Error("failed to get total allocated", "error", err, "space_id", spaceID)
totalAllocated = 0
}
balance -= totalAllocated
tags, err := h.tagService.GetTagsForSpace(spaceID)
if err != nil {
slog.Error("failed to get tags for space", "error", err, "space_id", spaceID)
@ -559,6 +566,13 @@ func (h *SpaceHandler) CreateExpense(w http.ResponseWriter, r *http.Request) {
slog.Error("failed to get balance", "error", err, "space_id", spaceID)
}
totalAllocated, err := h.accountService.GetTotalAllocatedForSpace(spaceID)
if err != nil {
slog.Error("failed to get total allocated", "error", err, "space_id", spaceID)
totalAllocated = 0
}
balance -= totalAllocated
if r.URL.Query().Get("from") == "overview" {
w.Header().Set("HX-Redirect", "/app/spaces/"+spaceID+"/expenses?created=true")
w.WriteHeader(http.StatusOK)
@ -691,6 +705,13 @@ func (h *SpaceHandler) UpdateExpense(w http.ResponseWriter, r *http.Request) {
slog.Error("failed to get balance after update", "error", err, "space_id", spaceID)
}
totalAllocated, err := h.accountService.GetTotalAllocatedForSpace(spaceID)
if err != nil {
slog.Error("failed to get total allocated", "error", err, "space_id", spaceID)
totalAllocated = 0
}
balance -= totalAllocated
ui.Render(w, r, pages.ExpenseUpdatedResponse(spaceID, expWithTags, balance))
}
@ -713,6 +734,13 @@ func (h *SpaceHandler) DeleteExpense(w http.ResponseWriter, r *http.Request) {
slog.Error("failed to get balance after delete", "error", err, "space_id", spaceID)
}
totalAllocated, err := h.accountService.GetTotalAllocatedForSpace(spaceID)
if err != nil {
slog.Error("failed to get total allocated", "error", err, "space_id", spaceID)
totalAllocated = 0
}
balance -= totalAllocated
ui.Render(w, r, expense.BalanceCard(spaceID, balance, true))
}
@ -786,6 +814,13 @@ func (h *SpaceHandler) GetBalanceCard(w http.ResponseWriter, r *http.Request) {
return
}
totalAllocated, err := h.accountService.GetTotalAllocatedForSpace(spaceID)
if err != nil {
slog.Error("failed to get total allocated", "error", err, "space_id", spaceID)
totalAllocated = 0
}
balance -= totalAllocated
ui.Render(w, r, expense.BalanceCard(spaceID, balance, false))
}