1 [% PROCESS "default/opac/parts/header.tt2";
2 PROCESS "default/opac/parts/misc_util.tt2";
3 WRAPPER "default/opac/parts/myopac/main_base.tt2";
5 myopac_main_page = "main";
8 [% IF ctx.fines.circulation.size > 0 %]
9 <div id='myopac_circ_trans_div'>
10 <table width='100%' class='data_grid'>
13 <td colspan='10' style='padding: 6px'>
14 <strong>[% l("Fines") %]</strong>
18 <td>[% l("Title") %]</td>
19 <td>[% l("Author") %]</td>
20 <td>[% l("Checkout Date") %]</td>
21 <td>[% l("Due Date") %]</td>
22 <td>[% l("Date Returned") %]</td>
23 <td>[% l("Balance Owed") %]</td>
24 <!-- TODO: hidden until pay-fines is implemented
25 <td nowrap="nowrap" style="white-space:nowrap;">
26 <input id="pay_fines_box1" checked="checked"
27 type="checkbox" title="[% l('Click to (un)select all fines') %]" />
28 <label for="pay_fines_box1">[% l('Pay Fines') %]</label>
33 <tbody id='myopac_circ_trans_tbody'>
34 [% FOR f IN ctx.fines.circulation;
35 attrs = {marc_xml => f.marc_xml};
37 PROCESS get_marc_attrs args=attrs;
38 ELSIF f.xact.reservation;
39 attrs.title = f.xact.reservation.target_resource_type.name;
41 <tr id='myopac_circ_trans_row'>
43 [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;
45 <a href="[% ctx.opac_root %]/record/[% recid %]">[% attrs.title %]</a>
51 <a href="[% ctx.opac_root %]/results?qtype=author&query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author %]</a>
53 <td name='myopac_circ_trans_start'>
54 [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;
56 date.format(ctx.parse_datetime(ts), DATE_FORMAT);
59 <td name='myopac_circ_trans_due'>
60 [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0;
62 date.format(ctx.parse_datetime(ts), DATE_FORMAT);
65 <td name='myopac_circ_trans_finished'>
66 [% ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;
68 date.format(ctx.parse_datetime(ts), DATE_FORMAT);
70 <!-- XXX TODO fines aren't really accruing
71 if circ has hit maxfines. more clarity
73 <span class="red">[% l('(fines accruing)') %]</span>
78 [% money(f.xact.balance_owed) %]
81 <!-- TODO: hidden until pay-fines is implemented
83 <input type="checkbox" name="selector" title="[% l('Pay this fine') %]" />
93 [% IF ctx.fines.grocery.size > 0 %]
94 <!-- Table for all non-circulation transactions -->
95 <div id='myopac_trans_div'>
97 <hr class='opac-auto-013' color="#dcdbdb" />
99 <table width='100%' class='data_grid data_grid_center'
100 id='myopac_trans_table'>
103 <td colspan='8' style='padding: 6px'>
104 <b>[% l("Other Fees") %]</b>
108 <td width='16%'>[% l("Transaction Start Time") %]</td>
109 <td width='16%'>[% l("Last Payment Time") %]</td>
110 <td width='16%'>[% l("Initial Amount Owed") %]</td>
111 <td width='16%'>[% l("Total Amount Paid") %]</td>
112 <td width='16%'>[% l("Balance Owed") %]</td>
113 <td width='16%'>[% l("Billing Type") %]</td>
114 <!-- TODO: hidden until pay-fines is implemented
115 <td width='4%' align="center" nowrap="nowrap"
116 style="white-space:nowrap;">
117 <input id="pay_fines_box2" checked="checked"
119 title="[% l('Click to (un)select all fines') %]" />
120 <label for="pay_fines_box2">[% l("Pay Fines") %]</label>
125 <tbody id='myopac_trans_tbody'>
126 [% FOR f IN ctx.fines.grocery %]
127 <tr id='myopac_trans_row'>
129 ctx.parse_datetime(f.xact.xact_start),
133 [% IF f.xact.last_payment_ts;
136 f.xact.last_payment_ts
141 <td>[% money(f.xact.total_owed) %]</td>
142 <td>[% money(f.xact.total_paid) %]</td>
145 [% money(f.xact.balance_owed) %]
148 <td>[% f.xact.last_billing_type %]</td>
149 <!-- TODO: hidden until pay-fines is implemented
151 <input type="checkbox" name='selector' title='[% l("Pay this fine") %]'/>
161 <!-- TODO: move payment form to its own page -->
163 <div id="pay_fines_now" class="hide_me">
164 <table id='oils-selfck-cc-payment-table'>
167 <td><div style="width:129px;"></div></td>
168 <td><div style="width:195px;"></div></td>
169 <td><div style="width:324px;"></div></td>
172 <td colspan='2'><strong>Billing Information</strong></td>
173 <td rowspan='13' valign='top'>
174 Selected fines you are paying for:
175 <table cellpadding="0" cellspacing="5" border="0">
179 <strong>Name</strong>
182 <strong>Amount</strong>
186 <tbody id="selectedFines">
190 <div id='oils-selfck-cc-payment-summary'>
192 <strong>$<span></span></strong>
195 Click <strong>Cancel</strong> to go back and (un)select
201 <td><input jsId='oilsSelfckCCFName' /></td>
205 <td><input jsId='oilsSelfckCCLName' /></td>
208 <td>Street Address</td>
209 <td><input jsId='oilsSelfckCCStreet' /></td>
213 <td><input jsId='oilsSelfckCCCity' /></td>
216 <td>State or Province</td>
217 <td><input jsId='oilsSelfckCCState' /></td>
220 <td>ZIP or Postal Code</td>
221 <td><input jsId='oilsSelfckCCZip' /></td>
224 <td colspan='2'><strong>Credit Card Information</strong></td>
226 <!-- Technically not needed since card type is derived from the CC number
228 <td>Type of Card</td>
230 <select jsId='oilsSelfckCCType' required='true'>
231 <option value='VISA'>VISA</option>
232 <option value='MasterCard'>MasterCard</option>
233 <option value='American Express'>American Express</option>
239 <td>Credit Card #</td>
240 <td><input jsId='oilsSelfckCCNumber' /></td>
244 <div style="position:absolute;">
245 <div style="position:relative;left:80px;">
247 src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
253 <input jsId='oilsSelfckCCCVV' />
257 <td>Exipration Month</td>
259 <select jsId='oilsSelfckCCMonth'>
260 <option value='01' selected='selected'>January</option>
261 <option value='02'>February</option>
262 <option value='03'>March</option>
263 <option value='04'>April</option>
264 <option value='05'>May</option>
265 <option value='06'>June</option>
266 <option value='07'>July</option>
267 <option value='08'>August</option>
268 <option value='09'>September</option>
269 <option value='10'>October</option>
270 <option value='11'>November</option>
271 <option value='12'>December</option>
276 <td>Expiration Year</td>
278 <select jsId='oilsSelfckCCYear'>
279 <option value='2011'>2011</option>
280 <option value='2012'>2012</option>
281 <option value='2013'>2013</option>
282 <option value='2014'>2014</option>
283 <option value='2015'>2015</option>
284 <option value='2016'>2016</option>
285 <option value='2017'>2017</option>
286 <option value='2018'>2018</option>
287 <option value='2019'>2019</option>
292 <td>Edit Billing Address</td>
294 <input jsId='oilsSelfckEditDetails'/>
298 <td colspan='2' align="center">
299 <button jsId='oilsSelfckCCSubmit'>
310 Important! You must have a printed receipt to be
311 eligible for a refund on lost items (regulations allow
315 To ensure your necessary receipt information is
316 not lost, enter your email address above and a
317 receipt will be emailed to you. Otherwise, make
318 certain you have a printed receipt in hand before
319 closing the payment receipt screen.
322 Refunds are not available for parts and pieces, overdue
323 fines, or items that do not display a specific title in
324 My Account. For a full list of refundable and
325 non-refundable items, visit
326 <a href="http://www.kcls.org/usingthelibrary/borrowing/refundable.cfm">http://www.kcls.org/usingthelibrary/borrowing/refundable.cfm</a><br /><br />
327 This site uses VeriSign SSL encryption to ensure your