Koha/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt
Liz Rea 6c6fe37ced Bug 8054 - double clicking can cause duplicate payments/fines
Uses preventDoubleForSubmit() to prevent double form submissions in the fines module.

To test:

Create a manual invoice/fine
Create some manual fines, click save like mad - you should get only one fine (without, you will get several if you click madly enough)

Click Pay fines
Pay some fines, clicking save like mad on each. You should only get one payment. (without, you will get several payments)

Create a manual credit
Create a credit, click save like mad. You should only get one credit. (without you will get several if you click madly enough)

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-03-11 08:14:12 -04:00

130 lines
5.3 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Patrons &rsaquo; Pay Fines for [% borrower.firstname %] [% borrower.surname %]</title>
[% INCLUDE 'doc-head-close.inc' %]
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
<script type= "text/javascript">
//<![CDATA[
$(document).ready(function(){
$('#pay-fines-form').preventDoubleFormSubmit();
$("#woall").click(function(event){
var answer = confirm(_("Are you sure you want to write off [% total | format('%.2f') %] in outstanding fines? This cannot be undone!"));
if (!answer){
event.preventDefault();
}
});
$('#CheckAll').click(function(){ $("#finest").checkCheckboxes(); return false;});
$('#CheckNone').click(function(){ $("#finest").unCheckCheckboxes(); return false;});
});
//]]>
</script>
</head>
<body id="pat_pay" class="pat">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'patron-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a> &rsaquo; Pay fines for [% borrower.firstname %] [% borrower.surname %]</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% INCLUDE 'members-toolbar.inc' borrowernumber=borrower.borrowernumber %]
<!-- The manual invoice and credit buttons -->
<div class="statictabs">
<ul>
<li><a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrower.borrowernumber %]">Account</a></li>
<li class="active"><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% borrower.borrowernumber %]" >Pay fines</a></li>
<li><a href="/cgi-bin/koha/members/maninvoice.pl?borrowernumber=[% borrower.borrowernumber %]" >Create manual invoice</a></li>
<li><a href="/cgi-bin/koha/members/mancredit.pl?borrowernumber=[% borrower.borrowernumber %]" >Create manual credit</a></li>
</ul>
<div class="tabs-container">
[% IF ( accounts ) %]
<form action="/cgi-bin/koha/members/pay.pl" method="post" id="pay-fines-form">
<input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrower.borrowernumber %]" />
<p><span class="checkall"><a id="CheckAll" href="#">Select all</a></span> | <span class="clearall"><a id="CheckNone" href="#">Clear all</a></span></p>
<table id="finest">
<thead>
<tr>
<th>&nbsp;</th>
<th>Fines &amp; charges</th>
<th>Description</th>
<th>Account type</th>
<th>Notify id</th>
<th>Level</th>
<th>Amount</th>
<th>Amount outstanding</th>
</tr>
</thead>
<tfoot>
<tr>
<td class="total" colspan="7">Total Due:</td>
<td>[% total | format('%.2f') %]</td>
</tr>
</tfoot>
<tbody>
[% FOREACH account_grp IN accounts %]
[% FOREACH line IN account_grp.accountlines %]
<tr>
<td>
[% IF ( line.amountoutstanding > 0 ) %]
<input type="checkbox" checked="checked" name="incl_par_[% line.accountno %]" />
[% END %]
</td>
<td>
[% IF ( line.amountoutstanding > 0 ) %]
<input type="submit" name="pay_indiv_[% line.accountno %]" value="Pay" />
<input type="submit" name="wo_indiv_[% line.accountno %]" value="Write off" />
[% END %]
<input type="hidden" name="itemnumber[% line.accountno %]" value="[% line.itemnumber %]" />
<input type="hidden" name="description[% line.accountno %]" value="[% line.description %]" />
<input type="hidden" name="accounttype[% line.accountno %]" value="[% line.accounttype %]" />
<input type="hidden" name="amount[% line.accountno %]" value="[% line.amount %]" />
<input type="hidden" name="accountlines_id[% line.accountno %]" value="[% line.accountlines_id %]" />
<input type="hidden" name="amountoutstanding[% line.accountno %]" value="[% line.amountoutstanding %]" />
<input type="hidden" name="borrowernumber[% line.accountno %]" value="[% line.borrowernumber %]" />
<input type="hidden" name="accountno[% line.accountno %]" value="[% line.accountno %]" />
<input type="hidden" name="notify_id[% line.accountno %]" value="[% line.notify_id %]" />
<input type="hidden" name="notify_level[% line.accountno %]" value="[% line.notify_level %]" />
<input type="hidden" name="totals[% line.accountno %]" value="[% line.totals %]" />
</td>
<td>[% line.description %] ([% line.title |html_entity %])</td>
<td>[% line.accounttype %]</td>
<td>[% line.notify_id %]</td>
<td>[% line.notify_level %]</td>
<td class="debit">[% line.amount | format('%.2f') %]</td>
<td class="debit">[% line.amountoutstanding | format('%.2f') %]</td>
</tr>
[% END %]
[% IF ( account_grp.total ) %]
<tr>
<td class="total" colspan="7">Sub total:</td>
<td>[% account_grp.total | format('%.2f') %]</td>
</tr>
[% END %]
[% END %]
</tbody>
</table>
<fieldset class="action">
<input type="submit" name="paycollect" value="Pay amount" class="submit" />
<input type="submit" name="woall" id="woall" value="Write off all" class="submit" />
<input type="submit" name="payselected" value="Pay selected" class="submit" />
<a class="cancel" href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrower.borrowernumber %]">Cancel</a>
</fieldset>
</form>
[% ELSE %]
<p>[% borrower.firstname %] [% borrower.surname %] has no outstanding fines.</p>
[% END %]
</div></div>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'circ-menu.tt' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]