in
walkNvs (rest,
SM.insert (umap, name, extra),
- amount - extra)
+ amount + extra)
end
else
walkNvs (rest, umap, amount)
val (charge, umap) =
case SM.find (umap, #name usr) of
NONE => (even, umap)
- | SOME extra => (even + extra, #1 (SM.remove (umap, #name usr)))
+ | SOME extra => (even - extra, #1 (SM.remove (umap, #name usr)))
in
addCharge {trn = trn, usr = #id usr, amount = charge};
umap
else
raise Fail "Usage description contains an unknown username"
end
+
+fun equalizeBalances () =
+ ignore (C.dml (getDb ()) ($`UPDATE Balance SET amount = (SELECT SUM(amount) FROM Charge JOIN WebUser ON usr = WebUser.id WHERE bal = Balance.id)`))
+
end
\ No newline at end of file