Josef Moravec
3cd1a60157
Test plan: 0) Apply the patch and restart memcached + koha-common services if needed 1) Go to adminitration -> Configure columns and confirm there is new table configuration with id=account-fines in Patrons section available 2) play with table setting to ensure it works as expected 3) go to to boraccount page for some patron with both fines - payed and owed 4) Note there is new button "Columns visibility" in top paginator panel, try to use it 5) Play with the datatable, sort filter and so on Signed-off-by: Radek Šiman <rbit@rbit.cz> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
151 lines
6.4 KiB
Text
151 lines
6.4 KiB
Text
[% USE Koha %]
|
|
[% USE KohaDates %]
|
|
[% USE ColumnsSettings %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Patrons › Account for [% INCLUDE 'patron-title.inc' %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
|
|
[% INCLUDE 'datatables.inc' %]
|
|
[% INCLUDE 'columns_settings.inc' %]
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
var txtActivefilter = _("Filter paid transactions");
|
|
var txtInactivefilter = _("Show all transactions");
|
|
var columns_settings = [% ColumnsSettings.GetColumns('members', 'fines', 'account-fines', 'json') %];
|
|
var table_account_fines = KohaTable("#table_account_fines", {
|
|
"sPaginationType": "four_button",
|
|
'aaSorting': [[0, 'desc']],
|
|
"sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
|
|
"aoColumnDefs": [
|
|
{ "sType": "title-string", "aTargets" : [ "title-string" ] },
|
|
{ "bSortable": false, "bSearchable": false, "aTargets": [-1] }
|
|
]
|
|
}, columns_settings);
|
|
$("#filter_c").html('<p><a href="#" id="filter_transacs"><i class="fa fa-filter"></i> '+txtActivefilter+'</a>');
|
|
$('#filter_transacs').click(function(e) {
|
|
e.preventDefault();
|
|
if ($(this).hasClass('filtered')) {
|
|
var filteredValue = '';
|
|
$(this).html('<i class="fa fa-filter"></i> '+txtActivefilter);
|
|
} else { //Not filtered. Let's do it!
|
|
var filteredValue = '^((?!0.00).*)$'; //Filter not matching 0.00 http://stackoverflow.com/a/406408
|
|
$(this).html('<i class="fa fa-filter"></i> '+txtInactivefilter);
|
|
}
|
|
table_account_fines.fnFilter(filteredValue, 4, true, false);
|
|
$(this).toggleClass('filtered');
|
|
});
|
|
});
|
|
</script>
|
|
</head>
|
|
<body id="pat_borraccount" class="pat">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'patron-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a> › Account for [% INCLUDE 'patron-title.inc' %]</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
[% INCLUDE 'members-toolbar.inc' %]
|
|
<form action="/cgi-bin/koha/members/boraccount.pl" method="get"><input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" /></form>
|
|
|
|
<!-- The manual invoice and credit buttons -->
|
|
<div class="statictabs">
|
|
<ul>
|
|
<li class="active"><a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% borrowernumber %]">Account</a></li>
|
|
<li><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% borrowernumber %]" >Pay fines</a></li>
|
|
<li><a href="/cgi-bin/koha/members/maninvoice.pl?borrowernumber=[% borrowernumber %]" >Create manual invoice</a></li>
|
|
<li><a href="/cgi-bin/koha/members/mancredit.pl?borrowernumber=[% borrowernumber %]" >Create manual credit</a></li>
|
|
</ul>
|
|
<div class="tabs-container">
|
|
<!-- The table with the account items -->
|
|
<table id="table_account_fines">
|
|
<thead>
|
|
<tr>
|
|
<th class="title-string">Date</th>
|
|
<th>Description of charges</th>
|
|
<th>Note</th>
|
|
<th>Amount</th>
|
|
<th>Outstanding</th>
|
|
[% IF ( reverse_col ) %]
|
|
<th>Actions</th>
|
|
[% ELSE %]
|
|
<th> </th>
|
|
[% END %]
|
|
</tr>
|
|
</thead>
|
|
|
|
<!-- FIXME: Shouldn't hardcode dollar signs, since Euro or Pound might be needed -->
|
|
[% FOREACH account IN accounts %]
|
|
|
|
<tr>
|
|
<td><span title="[% account.date %]">[% account.date |$KohaDates %]</span></td>
|
|
<td>
|
|
[% SWITCH account.accounttype %]
|
|
[% CASE 'Pay' %]Payment, thanks
|
|
[% CASE 'Pay00' %]Payment, thanks (cash via SIP2)
|
|
[% CASE 'Pay01' %]Payment, thanks (VISA via SIP2)
|
|
[% CASE 'Pay02' %]Payment, thanks (credit card via SIP2)
|
|
[% CASE 'N' %]New card
|
|
[% CASE 'F' %]Fine
|
|
[% CASE 'A' %]Account management fee
|
|
[% CASE 'M' %]Sundry
|
|
[% CASE 'L' %]Lost item
|
|
[% CASE 'W' %]Writeoff
|
|
[% CASE 'FU' %]Accruing fine
|
|
[% CASE 'HE' %]Hold waiting too long
|
|
[% CASE 'Rent' %]Rental fee
|
|
[% CASE 'FOR' %]Forgiven
|
|
[% CASE 'LR' %]Lost item fee refund
|
|
[% CASE 'PAY' %]Payment
|
|
[% CASE 'WO' %]Writeoff
|
|
[% CASE 'C' %]Credit
|
|
[% CASE 'CR' %]Credit
|
|
[% CASE %][% account.accounttype %]
|
|
[%- END -%]
|
|
[%- IF account.description %], [% account.description %][% END %]
|
|
[% IF ( account.itemnumber ) %]<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% account.biblionumber %]&itemnumber=[% account.itemnumber %]">[% account.title |html %]</a>[% END %]</td>
|
|
<td>[% account.note | html_line_break %]</td>
|
|
[% IF ( account.amountcredit ) %]<td class="credit" style="text-align: right;">[% ELSE %]<td class="debit" style="text-align: right;">[% END %][% account.amount %]</td>
|
|
[% IF ( account.amountoutstandingcredit ) %]<td class="credit" style="text-align: right;">[% ELSE %]<td class="debit" style="text-align: right;">[% END %][% account.amountoutstanding %]</td>
|
|
<td class="actions">
|
|
[% IF ( account.payment ) %]
|
|
<a target="_blank" href="printfeercpt.pl?action=print&accountlines_id=[% account.accountlines_id %]&borrowernumber=[% account.borrowernumber %]" class="btn btn-mini"><i class="fa fa-print"></i> Print</a>
|
|
[% ELSE %]
|
|
<a target="_blank" href="printinvoice.pl?action=print&accountlines_id=[% account.accountlines_id %]&borrowernumber=[% account.borrowernumber %]" class="btn btn-mini"><i class="fa fa-print"></i> Print</a>
|
|
[% END %]
|
|
[% IF ( reverse_col) %]
|
|
[% IF ( account.payment ) %]
|
|
<a href="boraccount.pl?action=reverse&accountlines_id=[% account.accountlines_id %]&borrowernumber=[% account.borrowernumber %]" class="btn btn-mini"><i class="fa fa-undo"></i> Reverse</a>
|
|
[% ELSE %]
|
|
|
|
[% END %]
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
|
|
[% END %]
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="4">Total due</td>
|
|
[% IF ( totalcredit ) %]
|
|
<td class="credit" style="text-align: right;">[% total %]</td>
|
|
[% ELSE %]
|
|
<td class="debit"style="text-align: right;">[% total %]</td>
|
|
[% END %]
|
|
<td></td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div></div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yui-b">
|
|
[% INCLUDE 'circ-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|