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