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 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) tags, err := h.tagService.GetTagsForSpace(spaceID)
if err != nil { if err != nil {
slog.Error("failed to get tags for space", "error", err, "space_id", spaceID) 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) 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" { if r.URL.Query().Get("from") == "overview" {
w.Header().Set("HX-Redirect", "/app/spaces/"+spaceID+"/expenses?created=true") w.Header().Set("HX-Redirect", "/app/spaces/"+spaceID+"/expenses?created=true")
w.WriteHeader(http.StatusOK) 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) 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)) 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) 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)) ui.Render(w, r, expense.BalanceCard(spaceID, balance, true))
} }
@ -786,6 +814,13 @@ func (h *SpaceHandler) GetBalanceCard(w http.ResponseWriter, r *http.Request) {
return 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)) ui.Render(w, r, expense.BalanceCard(spaceID, balance, false))
} }