]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates-bootstrap/opac/myopac/charges.tt2
LP1778972 A slew of updates
[Evergreen.git] / Open-ILS / src / templates-bootstrap / opac / myopac / charges.tt2
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
6     parent = "charges";\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
10     END\r
11 %]\r
12 [%  IF myopac_cc_allowed; %]\r
13 <form action="[% ctx.opac_root %]/myopac/main_payment_form#payment" method="get" id="selected_fines">\r
14 [% END %]\r
15 \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
23             [% ELSE %] \r
24                 [% l("Circulation Charges") %]\r
25              [% END %]\r
26            </span>\r
27            \r
28         </div>\r
29 \r
30      \r
31     \r
32         <table id="acct_fines_main_header" class="table table-hover table-responsive table-bordered miniTable chargesMainTable" title="[% l('Items Checked Out') %]">\r
33             <thead>\r
34                \r
35                 <tr>\r
36 \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
42                     </th> \r
43                     [% END %]\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
49                     <th>\r
50                        <span>[% l(" Returned/Renewed") %]</span>\r
51                        <span>[% l(" Returned&#42;") %]</span>\r
52                     </th>\r
53                     \r
54                 </tr>\r
55             </thead>\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
59                     IF 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
63                     END %]\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
70                     </td>\r
71                     [% END %]\r
72                     \r
73                     <td>\r
74                         <strong>\r
75                             [% money(f.xact.balance_owed) %]\r
76                         </strong>\r
77                         <input class="fineAmount" value="[% f.xact.balance_owed %]" hidden />\r
78                     </td>\r
79                     \r
80                     <td>\r
81                        [% f.xact.last_billing_type %]\r
82                     </td>\r
83                                   \r
84                     <td>\r
85                         [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;\r
86                         IF recid; %]\r
87                         <a href="[% mkurl(ctx.opac_root _ '/record/' _ recid,\r
88                             {loc => ctx.search_ou}) %]">[% attrs.title | html %]</a>\r
89                         [% ELSE %]\r
90                         [% attrs.title | html %]\r
91                         [% END %]\r
92                     </td>\r
93                     \r
94                    <td name='myopac_circ_trans_start'>\r
95                         [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;\r
96                         IF ts;\r
97                             date.format(ctx.parse_datetime(ts), DATE_FORMAT);\r
98                         END %]\r
99                     </td>\r
100                     \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
104                         IF ts;\r
105                             date.format(ctx.parse_datetime(ts, due_org), DATE_FORMAT);\r
106                         END %]\r
107                     </td>\r
108                     \r
109                     <td name='myopac_circ_trans_finished' >\r
110                         [%  ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;\r
111                             IF ts;\r
112                                 date.format(ctx.parse_datetime(ts), DATE_FORMAT);\r
113                             ELSE %]\r
114                             <!-- XXX TODO fines aren't really accruing\r
115                                 if circ has hit maxfines. more clarity\r
116                                 here? --> \r
117                             <span class="danger">[% l('(fines accruing)') %]</span>\r
118                         [%  END %]\r
119                     </td>\r
120                    \r
121                 </tr>\r
122                 [% END %]\r
123             </tbody>\r
124         </table>\r
125         <!-- Disclaimer for mobile -->\r
126         <span class="mobile_view cc_disclaimer"> <strong>&#42;</strong>Items may have been renewed. </span>\r
127     </div>\r
128     [% END %]\r
129 \r
130     [% IF ctx.fines.grocery.size > 0 %]\r
131     <!-- Table for all non-circulation transactions -->\r
132     <div id='myopac_trans_div'>\r
133         <h3>\r
134                 [% l("Charges On Your Account") %]\r
135         </h3>\r
136 \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
143         </div>             \r
144         [% END %]\r
145         \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
147             <thead>\r
148                 <tr>\r
149                 \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
155                     </th>\r
156                     [% END %]\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
161                     \r
162 \r
163                 </tr>\r
164             </thead>\r
165             <tbody id='myopac_trans_tbody'>\r
166                 [% c = 0; %]\r
167                 [% FOR f IN ctx.fines.grocery %]\r
168                 <tr class ='myopac_trans_row'>\r
169                 [% c = c + 1; %]\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
174                     </td>\r
175                     [% END %]\r
176                     \r
177                     <td class="danger">\r
178                         <span class="sr-only">Amount Owed</span>\r
179                         <strong>\r
180                             [% money(f.xact.balance_owed) %]\r
181                         </strong>\r
182                          <input type="hidden" class="fineAmount" value="[% f.xact.balance_owed %]" hidden />\r
183                     </td>\r
184                     \r
185                     <td>\r
186                         <span class="sr-only">Billing For</span>\r
187                         [% f.xact.last_billing_type %]\r
188                     </td>\r
189                     \r
190                     <td>\r
191                         [% IF f.xact.last_billing_note; %]\r
192                             <span class="sr-only">Note</span>\r
193                             [% f.xact.last_billing_note %]\r
194                         [% END %]\r
195                     </td>\r
196                     \r
197                     <td>\r
198                         <span class="sr-only">Date of Billing</span>\r
199                         [% date.format(ctx.parse_datetime(f.xact.xact_start),DATE_FORMAT) %]\r
200                     </td>\r
201 \r
202                 </tr>\r
203                 [% END %]\r
204             </tbody>\r
205         </table>\r
206    \r
207     </div>\r
208     [% END %]\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
212    \r
213     <div class="my-3">\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
217     </div>\r
218     [% END %]\r
219 [% IF myopac_cc_allowed %]\r
220 </form>\r
221 [% END %]\r
222 <script >\r
223 $( document ).ready(function() {\r
224    $("input[type=checkbox]").click(function () {\r
225         var amount = 0;\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
229         amount += item;\r
230     });\r
231     $("#total").val(amount);\r
232     $("#selectPay").html('<i class="fas fa-money-bill-wave"></i> Pay Selected Charges - $' + amount.toFixed(2));\r
233 });\r
234 });\r
235 \r
236 </script>\r
237 [% END %]\r
238 \r
239 <!--Table functions ~ Running total of selected items for use in a Paypal module or where running total is needed-->\r