1 [% PROCESS "opac/parts/header.tt2";
\r
2 PROCESS "opac/parts/misc_util.tt2";
\r
3 WRAPPER "opac/parts/myopac/base.tt2";
\r
4 myopac_page = "charges";
\r
5 myopac_main_page = "main";
\r
7 myopac_cc_allowed = 0;
\r
8 IF (ctx.fines.grocery.size OR ctx.fines.circulation.size) AND ctx.get_org_setting(ctx.user.home_ou, 'credit.payments.allow') == 1;
\r
9 myopac_cc_allowed = 1;
\r
12 [% IF myopac_cc_allowed; %]
\r
13 <form action="[% ctx.opac_root %]/myopac/main_payment_form#payment" method="get" id="selected_fines">
\r
16 [% IF ctx.fines.circulation.size > 0 %]
\r
17 <div id='myopac_circ_trans_div'>
\r
18 <div class="header_middle">
\r
19 <span class="acct_fines_header">
\r
20 <!-- Different heading when not able to pay -->
\r
21 [% IF myopac_cc_allowed %]
\r
22 [% l("Pay Selected Circulation Charges") %]
\r
24 [% l("Circulation Charges") %]
\r
32 <table id="acct_fines_main_header" class="table table-hover table-responsive table-bordered miniTable chargesMainTable" title="[% l('Items Checked Out') %]">
\r
37 [% IF myopac_cc_allowed %]
\r
38 <th style="white-space:nowrap;">
\r
39 <input id="pay_fines_box1" checked="checked"
\r
40 type="checkbox" onclick="select_all_checkboxes('xact', this.checked)"
\r
41 title="[% l('Click to (un)select all charges') %]" />
\r
44 <th>[% l("Owed") %]</th>
\r
45 <th>[% l("Billing Type") %]</th>
\r
46 <th>[% l("Title") %]</th>
\r
47 <th>[% l("Checkout") %]</th>
\r
48 <th>[% l(" Due ") %]</th>
\r
50 <span>[% l(" Returned/Renewed") %]</span>
\r
51 <span>[% l(" Returned*") %]</span>
\r
56 <tbody id='myopac_circ_trans_tbody'>
\r
57 [% FOR f IN ctx.fines.circulation;
\r
58 attrs = {marc_xml => f.marc_xml};
\r
60 PROCESS get_marc_attrs args=attrs;
\r
61 ELSIF f.xact.reservation;
\r
62 attrs.title = f.xact.reservation.target_resource_type.name;
\r
64 <tr id='myopac_circ_trans_row'>
\r
65 [% IF myopac_cc_allowed %]
\r
66 <td class="checkCell">
\r
67 <input type="checkbox" checked="checked"
\r
68 title="[% l('Pay this fine') %]" name="xact"
\r
69 value="[% f.xact.id %]" class="fineCheck"/>
\r
75 [% money(f.xact.balance_owed) %]
\r
77 <input class="fineAmount" value="[% f.xact.balance_owed %]" hidden />
\r
81 [% f.xact.last_billing_type %]
\r
85 [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;
\r
87 <a href="[% mkurl(ctx.opac_root _ '/record/' _ recid,
\r
88 {loc => ctx.search_ou}) %]">[% attrs.title | html %]</a>
\r
90 [% attrs.title | html %]
\r
94 <td name='myopac_circ_trans_start'>
\r
95 [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;
\r
97 date.format(ctx.parse_datetime(ts), DATE_FORMAT);
\r
101 <td name='myopac_circ_trans_due' >
\r
102 [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0;
\r
103 due_org = f.xact.circulation.circ_lib || f.xact.reservation.pickup_lib;
\r
105 date.format(ctx.parse_datetime(ts, due_org), DATE_FORMAT);
\r
109 <td name='myopac_circ_trans_finished' >
\r
110 [% ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;
\r
112 date.format(ctx.parse_datetime(ts), DATE_FORMAT);
\r
114 <!-- XXX TODO fines aren't really accruing
\r
115 if circ has hit maxfines. more clarity
\r
117 <span class="danger">[% l('(fines accruing)') %]</span>
\r
125 <!-- Disclaimer for mobile -->
\r
126 <span class="mobile_view cc_disclaimer"> <strong>*</strong>Items may have been renewed. </span>
\r
130 [% IF ctx.fines.grocery.size > 0 %]
\r
131 <!-- Table for all non-circulation transactions -->
\r
132 <div id='myopac_trans_div'>
\r
134 [% l("Charges On Your Account") %]
\r
137 [% IF myopac_cc_allowed %]
\r
138 <div class="d-block d-md-none">
\r
139 <input id="pay_fines_check" checked="checked"
\r
140 type="checkbox" onclick="select_all_checkboxes('xact_misc', this.checked)"
\r
141 aria-label="[% l('Check/Uncheck All') %]" />
\r
142 <label for="pay_fines_check">[% l('Check/Uncheck All') %]</label>
\r
146 <table id="acct_fees_main_header" class="table table-hover table-bordered miniTable chargesTable my-3" title="[% l('Other Fines and Fees') %]">
\r
150 [% IF myopac_cc_allowed %]
\r
151 <th style="white-space:nowrap;">
\r
152 <input id="pay_fines_box2" checked="checked"
\r
153 type="checkbox" onclick="select_all_checkboxes('xact_misc', this.checked)"
\r
154 aria-label="[% l('Check/Uncheck All') %]" />
\r
157 <th >[% l("Owed") %]</th>
\r
158 <th >[% l("Billing Type") %]</th>
\r
159 <th >[% l("Note") %]</th>
\r
160 <th >[% l("Date") %]</th>
\r
165 <tbody id='myopac_trans_tbody'>
\r
167 [% FOR f IN ctx.fines.grocery %]
\r
168 <tr class ='myopac_trans_row'>
\r
170 [% IF myopac_cc_allowed %]
\r
171 <td class="checkCell">
\r
172 <label class="sr-only">Billing Number [% c %]</label>
\r
173 <input aria-label="Pay This Bill" class="fineCheck" type="checkbox" name="xact_misc" value="[% f.xact.id %]" checked="checked" />
\r
177 <td class="danger">
\r
178 <span class="sr-only">Amount Owed</span>
\r
180 [% money(f.xact.balance_owed) %]
\r
182 <input type="hidden" class="fineAmount" value="[% f.xact.balance_owed %]" hidden />
\r
186 <span class="sr-only">Billing For</span>
\r
187 [% f.xact.last_billing_type %]
\r
191 [% IF f.xact.last_billing_note; %]
\r
192 <span class="sr-only">Note</span>
\r
193 [% f.xact.last_billing_note %]
\r
198 <span class="sr-only">Date of Billing</span>
\r
199 [% date.format(ctx.parse_datetime(f.xact.xact_start),DATE_FORMAT) %]
\r
209 [% UNLESS ctx.fines.grocery.size OR ctx.fines.circulation.size %]
\r
210 <div>[% l('You have no current fines.') %]</div>
\r
211 [% ELSIF myopac_cc_allowed %]
\r
214 <button type="submit" value="[% l('Pay selected charges') %] - [% money(ctx.user_stats.fines.balance_owed) %]" title="[% l('Pay selected charges') %]" class="btn btn-confirm my-1"
\r
215 id="selectPay"> <i class='fas fa-money-bill-wave'></i> [% l('Pay Selected Charges') %] - [% money(ctx.user_stats.fines.balance_owed) %]</button>
\r
216 <button type="submit" class="btn btn-confirm my-1"><i class="fas fa-cash-register"></i> [% l('Pay All Charges') %] - [% money(ctx.user_stats.fines.balance_owed) %]</button>
\r
219 [% IF myopac_cc_allowed %]
\r
223 $( document ).ready(function() {
\r
224 $("input[type=checkbox]").click(function () {
\r
226 $("td input:checked").each(function () {
\r
227 var item = jQuery( this ).parent().parent().children("td").children(".fineAmount").attr("value");
\r
228 item = parseFloat(item);
\r
231 $("#total").val(amount);
\r
232 $("#selectPay").html('<i class="fas fa-money-bill-wave"></i> Pay Selected Charges - $' + amount.toFixed(2));
\r
239 <!--Table functions ~ Running total of selected items for use in a Paypal module or where running total is needed-->
\r