+<% elseif $"cmd" = "bill" then
+ Group.requireGroupName "money";
+ showNormal := false %>
+
+<h3>New bill for the co-op</h3>
+
+<form action="money" method="post">
+<input type="hidden" name="cmd" value="bill2">
+<table class="blanks">
+<tr> <td>Description:</td> <td><input name="descr"></td> </tr>
+<tr> <td>Date:</td> <td><input name="d"></td> </tr>
+<tr> <td>Amount:</td> <td><input name="amount"></td> </tr>
+<tr> <td><input type="submit" value="Add"></td> </tr>
+</table>
+
+<% elseif $"cmd" = "bill2" then
+ Group.requireGroupName "money";
+ val id = Money.addTransaction ($"descr", Util.neg (Web.stor ($"amount")), $"d");
+ Money.addCharge {trn = id, usr = valOf (Init.userNameToId "hcoop"), amount = Util.neg (Web.stor ($"amount"))};
+ Money.applyCharges id;
+
+ %><h3>Bill added.</h3>
+
+<% elseif $"modBill" <> "" then
+ Group.requireGroupName "money";
+ showNormal := false;
+ val id = Web.stoi ($"modBill");
+ val trn = Money.lookupTransaction id %>
+
+<h3>Modify bill</h3>
+
+<form action="money" method="post">
+<input type="hidden" name="saveBill" value="<% id %>">
+<table class="blanks">
+<tr> <td>Description:</td> <td><input name="descr" value="<% Web.html (#descr trn) %>"></td> </tr>
+<tr> <td>Date:</td> <td><input name="d" value="<% Web.html (#d trn) %>"></td> </tr>
+<tr> <td>Amount:</td> <td><input name="amount" value="<% Util.neg (#amount trn) %>"></td> </tr>
+<tr> <td><input type="submit" value="Save"></td> </tr>
+</table>
+
+<% elseif $"saveBill" <> "" then
+ Group.requireGroupName "money";
+ val id = Web.stoi ($"saveBill");
+ val trn = Money.lookupTransaction id;
+
+ Money.clearCharges id;
+ Money.modTransaction {trn with descr = $"descr", d = $"d", amount = Util.neg (Web.stor ($"amount"))};
+ Money.addCharge {trn = id, usr = valOf (Init.userNameToId "hcoop"), amount = Util.neg (Web.stor ($"amount"))};
+ Money.applyCharges id;
+
+ %><h3>Bill modified.</h3>
+