From bde01dd3ce0444d75da0f3837bede5a037a18f3d Mon Sep 17 00:00:00 2001 From: adamch Date: Sun, 21 Oct 2007 18:39:36 +0000 Subject: [PATCH] Listing negative balances --- balance.sig | 1 + balance.sml | 11 +++++++++++ money.mlt | 25 +++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/balance.sig b/balance.sig index 06726a5..e7f9bf5 100644 --- a/balance.sig +++ b/balance.sig @@ -10,6 +10,7 @@ sig val listOwnedBalances : unit -> balance list val listUnownedBalances : unit -> balance list val listBalanceUsers : int -> Init.user list + val listNegativeOwnedBalances : unit -> balance list val validBalanceName : string -> bool val balanceNameToId : string -> int option diff --git a/balance.sml b/balance.sml index 1b715fa..5b0c684 100644 --- a/balance.sml +++ b/balance.sml @@ -69,6 +69,17 @@ fun listUnownedBalances () = OR Membership.grp IS NULL ORDER BY Balance.name`) +fun listNegativeOwnedBalances () = + C.map (getDb ()) mkBalanceRow ($`SELECT Balance.id, Balance.name, amount + FROM Balance JOIN WebUser + ON Balance.name = WebUser.name + AND WebUser.bal = Balance.id + JOIN Membership + ON Membership.grp = 1 + AND Membership.usr = WebUser.id + WHERE amount < 0 + ORDER BY Balance.name`) + fun validBalanceName name = size name <= 20 andalso CharVector.all (fn ch => Char.isAlpha ch orelse ch = #"+") name diff --git a/money.mlt b/money.mlt index 737d4b3..74bc1f6 100644 --- a/money.mlt +++ b/money.mlt @@ -64,9 +64,29 @@ end %> <% switch Balance.listBalanceUsers (#id bal) of [] => | (user :: users) => - %><% Web.html (#name user) %><% + %><% Web.html (#name user) %> [History]<% foreach user in users do - %>, <% Web.html (#name user) %><% + %>, <% Web.html (#name user) %> [History]<% + end +end %> +<% end %> + + +<% elseif $"cmd" = "nbals" then + showNormal := false; + val bals = Balance.listNegativeOwnedBalances () %> + +

Negative Active Balances (<% length bals %>)

+ + +<% foreach bal in bals do %> + <% end %> @@ -331,6 +351,7 @@ end %> List all transactions
List active balances
+List negative active balances
List retired balances
<% if (Group.inGroupName "money" and $"lookback" = "") or $"audit" <> "" then %> -- 2.20.1
<% #name bal %> <% #amount bal %> +<% switch Balance.listBalanceUsers (#id bal) of + [] => + | (user :: users) => + %><% Web.html (#name user) %> [History]<% + foreach user in users do + %>, <% Web.html (#name user) %> [History]<% end end %>