<% Group.requireGroupNum 0; @header [("title", ["Balance management"])]; ref showNormal = true; if $"cmd" = "Create" then if not (Balance.validBalanceName ($"name")) then %>

Invalid balance name

<% else switch Balance.balanceNameToId ($"name") of SOME _ => %>

Balance name already in use

<% | NONE => val id = Balance.addBalance ($"name") %>

Balance added

<% end end elseif $"mod" <> "" then showNormal := false; val balance = Balance.lookupBalance (Web.stoi ($"mod")) %>

Modify balance record

">
Name:
<% elseif $"cmd" = "Save" then val balance = Balance.lookupBalance (Web.stoi ($"id")); Balance.modBalance {balance with name = $"name"} %>

Balance record saved.

<% elseif $"del" <> "" then showNormal := false; val balance = Balance.lookupBalance (Web.stoi ($"del")) %>

Are you sure you want to delete balance <% #name balance %>?

">Yes, delete <% #name balance %>! <% elseif $"del2" <> "" then val balance = Balance.lookupBalance (Web.stoi ($"del2")); Balance.deleteBalance (Web.stoi ($"del2")) %>

<% #name balance %> deleted!

<% end %> <% if showNormal then ref total = 0.0 %>

New balance

Name:

Manage current balances

<% foreach balance in Balance.listBalances () do total := Util.add (total, #amount balance) %> <% end %>
<% Web.html (#name balance) %> <% #amount balance %> [Modify] [Delete]

Total: $<% total %> <% end %> <% @footer [] %>