val monthlyCost = 900.0
val graceMonths = 1
-val baseDues = 5.0
+val baseDues = 7.0
fun delinquentPledgers () =
let
end
fun resetPledges ids =
- raise Fail ($`UPDATE WebUser SET shares = 1 WHERE id IN (^(String.concatWith ", " (List.map C.intToSql ids)))`)
+ ignore (C.dml (getDb ()) ($`UPDATE WebUser SET shares = 1 WHERE id IN (^(String.concatWith ", " (List.map C.intToSql ids)))`))
fun freezeworthyPledgers () =
let
- val baseDues = 5.0
-
- fun makeRow [id, name, amount] = {id = C.intFromSql id, name = C.stringFromSql name,
- balance = C.realFromSql amount}
+ fun makeRow [id, name, amount, j] = {id = C.intFromSql id, name = C.stringFromSql name,
+ balance = C.realFromSql amount, joinedThisMonth = C.boolFromSql j}
| makeRow row = Init.rowError ("Bad freezeworthyPledgers", row)
in
- C.map (getDb ()) makeRow ($`SELECT WebUserPaying.id, WebUserPaying.name, amount
+ C.map (getDb ()) makeRow ($`SELECT WebUserPaying.id, WebUserPaying.name, amount, CURRENT_TIMESTAMP - joined < INTERVAL '1 month'
FROM WebUserPaying JOIN Balance ON Balance.id = bal
WHERE amount >= ^(C.realToSql baseDues) * ^(C.intToSql graceMonths)
AND amount < ^(C.realToSql baseDues) * ^(C.intToSql (graceMonths + 1))
fun bootworthyPledgers () =
let
- val baseDues = 5.0
-
- fun makeRow [id, name, amount] = {id = C.intFromSql id, name = C.stringFromSql name,
- balance = C.realFromSql amount}
+ fun makeRow [id, name, amount, j] = {id = C.intFromSql id, name = C.stringFromSql name,
+ balance = C.realFromSql amount, joinedThisMonth = C.boolFromSql j}
| makeRow row = Init.rowError ("Bad bootworthyPledgers", row)
in
- C.map (getDb ()) makeRow ($`SELECT WebUserPaying.id, WebUserPaying.name, amount
+ C.map (getDb ()) makeRow ($`SELECT WebUserPaying.id, WebUserPaying.name, amount, CURRENT_TIMESTAMP - joined < INTERVAL '1 month'
FROM WebUserPaying JOIN Balance ON Balance.id = bal
WHERE amount < ^(C.realToSql baseDues) * ^(C.intToSql graceMonths)
ORDER BY name`)