Fix some money bugs and add equalizeBalances
[hcoop/zz_old/portal.git] / money.mlt
index b16b14a..1e1f692 100644 (file)
--- a/money.mlt
+++ b/money.mlt
@@ -3,6 +3,7 @@
 ref showNormal = true;
 
 if $"cmd" = "list" then
+       val admin = Group.inGroupName "money";
        showNormal := false %>
 
 <h3><b>Transactions</b></h3>
@@ -12,9 +13,14 @@ if $"cmd" = "list" then
 <% foreach trn in Money.listTransactions () do %>
 <tr> <td><% #d trn %></td> <td><a href="money?trn=<% #id trn %>"><% Web.html (#descr trn) %></a></td> <td><% #amount trn %></td> <td><% #stamp trn %></td>
 <% switch Money.listChargesWithNames (#id trn) of
-         [(name, cha)] => %><td><a href="user?id=<% #usr cha %>"><% name %></a></td> </tr><%
-       | _ => %><td><i>multi</i></td> </tr><%
+         [(name, cha)] => %><td><a href="user?id=<% #usr cha %>"><% name %></a></td><%
+       | _ => %><td><i>multi</i></td><%
+end;
+if admin then
+       %><td><a href="money?modHosting=<% #id trn %>">[Hosting]</a> <a href="money?modPay=<% #id trn %>">[Payment]</a> <a href="money?modEven=<% #id trn %>">[Other]</a></td>
+       <td><a href="money?del=<% #id trn %>">[Delete]</a></td><%
 end
+%></tr><%
 end %>
 </table>
 
@@ -249,6 +255,11 @@ end %></td> </tr>
        Money.deleteTransaction id %>
        <h3><b><% Web.html (#descr trn) %> deleted!</b></h3>
 
+<% elseif $"cmd" = "equalize" then
+       Group.requireGroupName "money";
+       Money.equalizeBalances ();
+       %><h3><b>Balances equalized</b></h3>
+
 <% elseif $"trn" <> "" then
        showNormal := false;
        val id = Web.stoi ($"trn");
@@ -284,6 +295,8 @@ end %>
 <a href="money?cmd=hosting">Hosting bill</a><br>
 <a href="money?cmd=pay">Payment from member</a><br>
 <a href="money?cmd=evenForm">Generic/even</a><br>
+<br>
+<a href="money?cmd=equalize">Equalize balances</a><br>
 
 <h3><b>Most recent transactions</b></h3>