7 [% USE AuthorisedValues %]
8 [% USE TablesSettings %]
9 [% PROCESS 'member-display-address-style.inc' %]
10 [% SET footerjs = 1 %]
11 [% BLOCK display_bormessagepref %]
12 [% IF ( bormessagepref ) %]
13 <li class="notification_method">Patron notification:
14 [% FOREACH mtt IN bormessagepref.keys %]
15 [%~ IF ( mtt == 'email' ) %] Email[% END ~%]
16 [%~ IF ( mtt == 'phone' ) %] Phone[% END ~%]
17 [%~ IF ( mtt == 'sms' ) %] SMS[% END ~%]
18 [%~ UNLESS loop.last %], [% ELSE %].[% END ~%]
22 <li class="notification_method none">Patron is not notified.</li>
26 [% BLOCK display_holdpatron_address %]
27 [% PROCESS 'display-address-style' %]
30 [% INCLUDE 'doc-head-open.inc' %]
31 <title>Koha › Circulation › Check in [% title | html %]</title>
32 [% INCLUDE 'doc-head-close.inc' %]
35 <body id="circ_returns" class="circ">
36 <span class="audio-alert-success"></span>
38 [% INCLUDE 'header.inc' %]
39 [% INCLUDE 'checkin-search.inc' %]
41 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › Check in</div>
43 <div class="main container-fluid">
45 <div class="col-sm-12">
49 [% IF Koha.Preference('CircSidebar') %]
50 <div class="col-sm-10 col-sm-push-2">
52 <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
55 [% BLOCK all_checkin_messages %]
56 [% IF hold_auto_filled %]
57 <div class="dialog message hold-auto-filled">
58 [% IF ( reservenotes ) %]
59 <h4>Notes: [% reservenotes | html %]</h4>
61 <h3>Hold filled for:</h3>
64 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 %]
65 <span class="patron-category"> - [% patron.category.description | html %]</span>
68 [% INCLUDE display_holdpatron_address %]
70 [% IF ( patron.phone ) %]
71 <li>[% patron.phone | html %]</li>
74 [% IF ( patron.email ) %]
76 [% IF ( transfertodo ) %]
77 [% patron.email | html %]
79 <a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a>
84 [% UNLESS ( transfertodo) %]
85 [% INCLUDE display_bormessagepref %]
88 [% IF ( patron.is_debarred ) %]
89 <li class="error">Patron is RESTRICTED</li>
92 [% IF ( patron.gonenoaddress ) %]
93 <li class="error">Patron's address is in doubt</li>
97 [% IF ( transfertodo ) %]
98 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
100 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
103 <a href="#" class="btn btn-default print print-slip">
104 <i class="fa fa-print"></i> Print
106 </div> <!-- /.hold-auto-filled -->
107 [% END # /IF hold_auto_filled %]
109 [% IF privacy == 2 AND NOT Koha.Preference('AnonymousPatron') %]
110 <div class="dialog alert">
111 <strong>Error:</strong>
112 This patron has requested their circulation history be anonymized on check-in, but the AnonymousPatron system preference is empty or incorrect.
114 [% ELSIF NOT Koha.Preference('AnonymousPatron') AND Koha.Preference('OPACPrivacy') %]
115 <div class="dialog alert">
116 <strong>Error:</strong>
117 The system preference OPACPrivacy is set but AnonymousPatron is not! Please correct this before continuing circulation.
121 [% IF additional_materials && !needs_confirm && !multiple_confirmed %]
122 <div class="dialog message">
123 Note about the accompanying materials: [% additional_materials | html %]
127 [% IF ( collectionItemNeedsTransferred ) %]
128 <div id="rotating-collection" class="dialog message">
129 <h3>Please transfer item to: [% Branches.GetName( collectionBranch ) | html %]</h3>
130 <p><a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% itembarcode | html %]: [% title | html %]</a></p>
131 <p>This item is part of a rotating collection.</p>
132 <p><button type="button" class="openWin" data-url="transfer-slip.pl?transferitem=[% itemnumber | uri %]&branchcode=[% collectionBranch | uri %]&op=slip"><i class="fa fa-print"></i> Print slip</button></p>
136 <!-- Patron has added an issue note -->
137 [% IF ( issue.note) %]
138 <div class="dialog message">
140 <p>[% issue.notedate | $KohaDates %]</p>
141 <p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itembiblionumber | uri %]"> [% title | html %]</a> [% author | html %]</p>
142 <p>[% issue.note | html %]</p>
146 <!-- Patron has fines -->
148 <div class="dialog alert">
149 <h3>Patron has outstanding fines of [% fines | html %].</h3>
150 <p><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% fineborrowernumber | uri %]">Make payment</a>.</p>
154 <!-- Item has return claim(s) -->
155 [% IF ( ReturnClaims ) %]
156 <div class="dialog alert return-claim">
157 <h3>This item has been claimed as returned by:</h3>
159 [% FOREACH rc IN ReturnClaims %]
161 [% INCLUDE 'patron-title.inc' patron=rc.patron hide_patron_infos_if_needed=1 invert_name=1 %]
168 <!-- Patron has waiting holds -->
169 [% IF ( waiting_holds ) %]
170 <div id="awaiting-pickup" class="dialog message">
171 <h3>[% INCLUDE 'patron-title.inc' patron=issue.patron hide_patron_infos_if_needed=1 invert_name=1 %] has [% waiting_holds | html %] hold(s) waiting for pickup.</h3>
172 <p><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% holdsborrowernumber | uri %]">Check out to this patron</a>.</p>
176 <!-- Patron is restricted and checkin was backdated -->
177 [% IF return_date_was_overriden && issue.patron.is_debarred %]
178 <div id="restricted_backdated" class="dialog message">
180 [% INCLUDE 'patron-title.inc' patron=issue.patron hide_patron_infos_if_needed=1 invert_name=1 %]
181 is restricted. Please verify this patron should still be restricted.
187 [% IF ( errmsgloop ) %]
188 <div class="dialog alert audio-alert-warning">
189 <h3>Check in message</h3>
190 [% IF itembiblionumber %]
191 <p><a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% itembarcode | html %]: [% title | html %]</a></p>
193 [% FOREACH errmsgloo IN errmsgloop %]
194 [% IF ( errmsgloo.NotForLoanStatusUpdated ) %]
195 <p class="problem ret_nflupdate">
196 Not for loan status updated.
198 [% IF errmsgloo.NotForLoanStatusUpdated.from %]
199 <span class="ret_updatedfrom">
200 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => errmsgloo.NotForLoanStatusUpdated.from ) | html %].
206 [% IF errmsgloo.NotForLoanStatusUpdated.to %]
207 <span class="ret_updatedto">
208 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => errmsgloo.NotForLoanStatusUpdated.to ) | html %].
215 [% IF ( errmsgloo.ItemLocationUpdated ) %]
216 <p class="problem ret_location_update">
217 Item shelving location updated.
219 [% IF errmsgloo.ItemLocationUpdated.from %]
220 [% SET av_description = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => errmsgloo.ItemLocationUpdated.from ) %]
221 [% IF errmsgloo.ItemLocationUpdated.from == '' %]
223 [% ELSIF av_description == '' %]
224 [% errmsgloo.ItemLocationUpdated.from | html %] (No description available)
226 [% av_description | html %]
232 [% IF errmsgloo.ItemLocationUpdated.to %]
233 [% SET av_description = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => errmsgloo.ItemLocationUpdated.to ) %]
234 [% IF errmsgloo.ItemLocationUpdated.to == '' %]
236 [% ELSIF av_description == '' %]
237 [% errmsgloo.ItemLocationUpdated.to | html %] (Not an authorized value)
239 [% av_description | html %]
246 [% IF ( errmsgloo.badbarcode ) %]
247 <p class="problem ret_badbarcode">No item with barcode: [% errmsgloo.msg | html %]</p>
249 [% IF ( errmsgloo.ispermanent ) %]
250 <p class="problem ret_ispermenant">Please return item to: [% Branches.GetName( errmsgloo.msg ) | html %]</p>
252 [% IF ( errmsgloo.notissued ) %]
253 <p class="problem ret_notissued">Not checked out.</p>
255 [% IF ( errmsgloo.localuse) %]
256 <p class="problem ret_localuse">Local use recorded</p>
258 [% IF ( errmsgloo.transferred ) %]
259 <p class="problem ret_transferred">Item received from [% Branches.GetName( errmsgloo.transferred ) | html %]</p>
261 [% IF ( errmsgloo.waslost ) %]
262 [% IF Koha.Preference('BlockReturnOfLostItems') %]
263 <p class="problem ret_blocked">Item is lost, cannot be checked in.</p>
265 <p class="problem ret_checkedin">Item was lost, now found.</p>
267 [% IF LostItemFeeRefunded and not Koha.Preference('BlockReturnOfLostItems') %]
268 <p class="problem ret_refund">A refund has been applied to the borrowing patron's account.</p>
269 [% ELSIF Koha.Preference('BlockReturnOfLostItems') %]
270 <h5>Cannot check in</h5>
271 <p><strong>NOT CHECKED IN</strong></p>
273 <p class="problem ret_feeremains">Any lost item fees for this item will remain on the patron's account.</p>
276 [% IF ( errmsgloo.withdrawn ) %]
277 [% IF Koha.Preference('BlockReturnOfWithdrawnItems') %]
278 <h5>Cannot check in</h5>
279 <p><strong>NOT CHECKED IN</strong></p>
281 <p class="problem ret_withdrawn">Item is withdrawn.</p>
283 [% IF ( errmsgloo.debarred ) %]
284 <p class="problem ret_debarred"><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% errmsgloo.debarborrowernumber | uri %]">[% errmsgloo.debarname | html %]([% errmsgloo.debarcardnumber | html %])</a> is now debarred until [% errmsgloo.debarred | $KohaDates %].</p>
286 [% IF ( errmsgloo.prevdebarred ) %]
287 <p class="problem ret_prevdebarred"><strong>Reminder: </strong>Patron was earlier restricted until [% errmsgloo.prevdebarred | $KohaDates %].</p>
289 [% IF ( errmsgloo.foreverdebarred ) %]
290 <p class="problem ret_foreverdebarred"><strong>Reminder: </strong>Patron has an indefinite restriction.</p>
292 [% IF errmsgloo.data_corrupted %]
293 <p class="problem ret_datacorrupt">The item has not been checked in due to a configuration issue in your system. You must ask an administrator to take a look at the <a href="/cgi-bin/koha/about.pl#sysinfo">about page</a> and search for the "data problems" section</p>
295 [% END # /FOREACH errmsgloo %]
296 </div> <!-- /.dialog.dialog-alert -->
297 [% END #/IF errmsgloop %]
299 [% IF ( checkinmsg ) %]
300 [% IF ( checkinmsgtype == 'alert' ) %]
301 <div class="dialog alert">
303 <div class="dialog message">
305 <p class="problem ret_checkinmsg">[% checkinmsg | html_line_break %]</p>
307 [% END # /IF checkinmsg %]
308 [% END # /BLOCK all_checkin_messages %]
310 [% IF needs_confirm %]
311 <div id="circ-needsconfirmation-modal" class="modal fade audio-alert-action block">
312 <div class="modal-dialog">
313 <div class="modal-content">
314 <div class="modal-header">
315 <h3>Please confirm checkin</h3>
317 <div class="modal-body">
320 Please confirm that the accompanying materials are present: <strong>[% additional_materials | html %]</strong>
324 <div class="modal-footer">
325 <form method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off">
326 <input type="hidden" name="barcode" value="[% itembarcode | html %]" />
327 <input type="hidden" name="multiple_confirm" value="1" />
328 [% FOREACH inputloo IN inputloop %]
329 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
330 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
331 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
333 <button type="submit" class="approve" accesskey="y"><i class="fa fa-check"></i> Yes, checkin (Y)</button>
335 <button type="button" data-dismiss="modal" class="deny" accesskey="n"><i class="fa fa-times"></i> No, don't checkin (N)</button>
343 <div id="wrong-branch-modal" class="modal fade audio-alert-action block">
344 <div class="modal-dialog">
345 <div class="modal-content">
346 <form method="post" action="returns.pl" name="mainform" id="mainform">
347 <div class="modal-header">
352 <div class="modal-body">
354 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
355 [% itembarcode | html %]: [% title | html %]
364 This item must be checked in at following library:
366 [% Branches.GetName( rightbranch ) | html %]
369 [% INCLUDE all_checkin_messages %]
370 </div> <!-- /.modal-body -->
371 <div class="modal-footer">
372 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
374 </form> <!-- /#mainform -->
375 </div> <!-- /.modal-content -->
376 </div> <!-- /.modal-dialog -->
377 </div> <!-- /#wrong-branch-modal -->
378 [% END # /IF wrongbranch %]
380 <!-- case of a mistake in transfer loop -->
381 [% UNLESS ( hold_auto_filled && diffbranch ) %]
382 [% IF WrongTransfer && !transfertodo %]
383 [% IF Koha.Preference('TransfersBlockCirc') %]
384 <div id="wrong-transfer-modal" class="modal fade audio-alert-action block">
386 <div id="wrong-transfer-modal" class="modal fade audio-alert-action noblock">
388 <div class="modal-dialog">
389 <div class="modal-content">
390 <div class="modal-header">
392 Please return item to: [% Branches.GetName( TransferWaitingAt ) | html %]
395 <div class="modal-body">
397 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
398 [% itembarcode | html %]: [% title | html %]
401 [% INCLUDE all_checkin_messages %]
403 <div class="modal-footer">
405 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
407 <button type="button" data-dismiss="modal" class="btn btn-default print openWin" data-url="transfer-slip.pl?transferitem=[% itemnumber | uri %]&&branchcode=[% TransferWaitingAt | uri %]&op=slip"><i class="fa fa-print"></i> Print transfer slip</button>
408 <!-- CANCEL TRANSFER -->
409 <form method="post" action="returns.pl" name="mainform">
410 <button class="btn btn-default deny" type="submit"><i class="fa fa-times"></i> Cancel transfer</button>
411 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
412 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
413 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
414 <input type="hidden" name="canceltransfer" value="1" />
415 [% FOREACH inputloo IN inputloop %]
416 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
417 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
418 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
420 </form> <!-- /mainform -->
421 </div> <!-- /.modal-footer -->
422 </div> <!-- /.modal-content -->
423 </div> <!-- /.modal-dialog -->
424 </div> <!-- /#wrong-transfer-modal -->
425 [% END # /IF WrongTransfer && !transfertodo %]
426 [% END # /UNLESS hold_auto_filled && diffbranch %]
430 <div id="hold-found1" class="modal fade audio-alert-action block">
431 <div class="modal-dialog">
432 <div class="modal-content">
433 <form method="post" action="returns.pl" class="confirm">
434 <div class="modal-header">
436 Hold found (item is already waiting):
438 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% title | html %]</a>
439 <div class="hold-found-barcode">
440 <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itembiblionumber | uri %]&itemnumber=[% itemnumber | uri %]">[% itembarcode | html %]</a>
445 <div class="modal-body">
446 [% IF ( reservenotes ) %]
447 <h4>Notes: [% reservenotes | html %]</h4>
453 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 link_to="circulation_reserves" %]
454 <span class="patron-category"> - [% patron.category.description | html %]</span>
456 [% INCLUDE display_holdpatron_address %]
457 [% IF ( patron.phone ) %]
458 <li> [% patron.phone | html %]</li>
461 [% IF ( patron.email ) %]
462 <li><a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a></li>
465 [% IF ( patron.is_debarred ) %]
466 <li class="error">Patron is RESTRICTED</li>
469 [% IF ( patron.gonenoaddress ) %]
470 <li class="error">Patron's address is in doubt</li>
474 [% IF ( transfertodo ) %]
475 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
477 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
480 [% FOREACH inputloo IN inputloop %]
481 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
482 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
483 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
486 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
487 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
488 <input type="hidden" name="biblionumber" value="[% itembiblionumber | html %]" />
489 <input type="hidden" name="reserve_id" value="[% reserve_id | html %]" />
490 <input type="hidden" name="diffBranch" value="[% destbranch | html %]" />
491 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
492 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
493 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
495 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
496 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
497 [% INCLUDE all_checkin_messages %]
498 </div> <!-- /.modal-body -->
500 <div class="modal-footer">
501 <input type="hidden" name="cancel_reserve" value="0" />
502 <input type="hidden" name="barcode" value="[% barcode | html %]" />
504 <button type="submit" class="btn btn-default approve" data-dismiss="modal">
505 <i class="fa fa-check"></i> Confirm hold
508 <input type="hidden" name="print_slip" value="0" />
509 <button type="button" class="btn btn-default print">
510 <i class="fa fa-print"></i> Print slip and confirm
513 <button type="button" class="btn btn-default deny cancel-hold">
514 <i class="fa fa-times"></i> Cancel hold
516 </div> <!-- /.modal-footer -->
517 </form> <!-- /.confirm -->
518 </div> <!-- /.modal-content -->
519 </div> <!-- /.modal-dialog -->
520 </div> <!-- /#hold-found1 -->
521 [% END # /IF waiting %]
523 [% IF transfer || needstransfer %]
524 [% IF Koha.Preference('TransfersBlockCirc') %]
525 <div id="item-transfer-modal" class="modal fade audio-alert-action block">
527 <div id="item-transfer-modal" class="modal fade audio-alert-action noblock">
529 <div class="modal-dialog">
530 <div class="modal-content">
531 <form method="post" action="returns.pl" name="mainform" id="mainform">
533 <input type="hidden" name="print_slip" value="0" />
535 <div class="modal-header">
537 Please return this item to [% Branches.GetName( returnbranch ) | html %]
540 <div class="modal-body">
542 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
543 [% itembarcode | html %]: [% title | html %]
551 <input type="hidden" name="tobranch" value="[% returnbranch | html %]" />
552 <input type="hidden" name="transferitem" value="[% itemnumber | html %]" />
553 <input type="hidden" name="barcode" value="0" />
554 <input type="hidden" name="trigger" value="[% trigger | html %]" />
555 [% INCLUDE all_checkin_messages %]
557 <div class="modal-footer">
559 <button type="submit" name="dotransfer" value="Yes" class="btn btn-default approve"><i class="fa fa-check"></i> Yes</button>
560 <button type="button" name="dotransfer" value="Yes" class="btn btn-default print openWin" data-url="transfer-slip.pl?transferitem=[% itemnumber | uri %]&&branchcode=[% returnbranch | uri %]&op=slip"><i class="fa fa-print"></i> Yes, print slip</button>
561 <button type="button" data-dismiss="modal" class="btn btn-default deny" name="notransfer" value="No"><i class="fa fa-times"></i> No</button>
563 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
564 <button type="button" data-dismiss="modal" name="dotransfer" class="btn btn-default print openWin" data-url="transfer-slip.pl?transferitem=[% itemnumber | uri %]&branchcode=[% returnbranch | uri %]&op=slip"><i class="fa fa-print"></i> Print slip</button>
566 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
567 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
568 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
569 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
570 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
571 [% FOREACH inputloo IN inputloop %]
572 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
573 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
574 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
576 </div> <!-- /.modal-footer -->
577 </form> <!-- /#mainform -->
578 </div> <!-- /.modal-content -->
579 </div> <!-- /.modal-dialog -->
580 </div> <!-- /#item-transfer-modal -->
581 [% END # /IF transfer || needstransfer %]
583 <!-- case of simple return no issue or transfer but with a reservation -->
584 [% IF ( reserved ) %]
586 <div id="hold-found2" class="modal fade audio-alert-action block">
587 <div class="modal-dialog">
588 <div class="modal-content">
589 <form method="post" action="returns.pl" class="confirm">
591 <input type="hidden" name="print_slip" value="0" />
593 <div class="modal-header">
597 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% title | html %]</a>
598 <div class="hold-found-barcode">
599 (<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itembiblionumber | uri %]&itemnumber=[% itemnumber | uri %]">[% itembarcode | html %]</a>)
604 <div class="modal-body">
605 [% IF ( reservenotes ) %]
607 <p>[% reservenotes | html %]</p>
613 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 link_to="circulation_reserves" %]
614 <span class="patron-category"> - [% patron.category.description | html %]</span>
617 [% INCLUDE display_holdpatron_address %]
619 [% IF ( patron.phone ) %]
620 <li>[% patron.phone | html %]</li>
623 [% IF ( patron.email ) %]
625 [% IF ( transfertodo ) %]
626 [% patron.email | html %]
628 <a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a>
633 [% UNLESS ( transfertodo) %]
634 [% INCLUDE display_bormessagepref %]
637 [% IF ( patron.is_debarred ) %]
638 <li class="error">Patron is RESTRICTED</li>
641 [% IF ( patron.gonenoaddress ) %]
642 <li class="error">Patron's address is in doubt</li>
645 [% IF ( transfertodo ) %]
646 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
648 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
651 [% FOREACH inputloo IN inputloop %]
652 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
653 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
654 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
657 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
658 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
659 <input type="hidden" name="biblionumber" value="[% itembiblionumber | html %]" />
660 <input type="hidden" name="reserve_id" value="[% reserve_id | html %]" />
661 <input type="hidden" name="diffBranch" value="[% destbranch | html %]" />
662 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
663 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
664 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
665 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
666 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
667 [% INCLUDE all_checkin_messages %]
670 <div class="modal-footer">
671 [% IF ( transfertodo ) %]
672 <button type="submit" class="btn btn-default approve">
673 <i class="fa fa-check"></i> Confirm hold and transfer
675 <button type="button" class="btn btn-default print">
676 <i class="fa fa-print"></i> Print slip, transfer, and confirm
679 <button type="submit" class="btn btn-default approve">
680 <i class="fa fa-check"></i> Confirm hold
682 <button type="button" class="btn btn-default print">
683 <i class="fa fa-print"></i> Print slip and confirm
687 <button data-dismiss="modal" aria-hidden="true" type="submit" class="btn btn-default deny">
688 <i class="fa fa-times"></i> Ignore
690 </div> <!-- /.modal-footer -->
691 </form> <!-- /.confirm -->
692 </div> <!-- /.modal-content -->
693 </div> <!-- /.modal-dialog -->
694 </div> <!-- /#hold-found2 -->
695 [% END #/IF reserved %]
696 [% END # /IF found %]
698 <div class="static_checkin_messages">
699 [% INCLUDE all_checkin_messages %]
702 <form id="checkin-form" method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" >
703 <fieldset id="circ_returns_checkin">
704 <div class="show_checkin_dialog" style="float:right;display:none"><button type="button" class="btn btn-default btn-sm" data-toggle="tooltip" title="Show the last checkin message"><i class="fa fa-info"></i></button></div>
707 <div class="col-sm-6">
708 <div class="hint">Enter item barcode:</div>
709 <div class="form-control-group">
710 [% IF ( exemptfine ) %]
711 <input name="barcode" id="barcode" size="14" class="focus input-warning" type="text" />
712 [% ELSIF ( dropboxmode ) %]
713 <input name="barcode" id="barcode" size="14" class="barcode focus input-warning" />
715 <input name="barcode" id="barcode" size="14" class="barcode focus" />
717 <button type="submit" class="btn btn-default">Check in</button>
718 [% FOREACH inputloo IN inputloop %]
719 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
720 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
721 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
724 <div id="show-circ-settings">
725 <a href="#"><i class="fa circ-settings-icon fa-caret-down"></i> Checkin settings</a>
728 <div class="col-sm-6">
729 [% IF ( exemptfine ) %]
730 <div id="exemptfines" class="checkin-active-setting">
732 <div id="exemptfines" class="checkin-active-setting" style="display:none;">
734 <p><i class="fa fa-check"></i> Fines for returned items are forgiven.</p>
737 [% IF ( forgivemanualholdsexpire ) %]
738 <div id="forgivemanualholdsexpire-alert" class="checkin-active-setting">
740 <div id="forgivemanualholdsexpire-alert" class="checkin-active-setting" style="display:none;">
742 <p><i class="fa fa-check"></i> Fines are not charged for manually cancelled holds.</p>
745 [% IF ( dropboxmode ) %]
746 <div id="dropboxmode" class="checkin-active-setting">
748 <div id="dropboxmode" class="checkin-active-setting" style="display:none;">
750 <p><i class="fa fa-check"></i> Book drop mode. <span class="single-line">( Effective checkin date is [% dropboxdate | $KohaDates with_hours => 1 %] )</span></p>
752 [% IF ( return_date_override_remember ) %]
753 <div id="return_date_remember" class="checkin-active-setting">
755 <div id="return_date_remember" class="checkin-active-setting" style="display:none;">
757 <p><i class="fa fa-check"></i> Saved check-in date: <span id="saved_return_date" class="single-line">[% return_date_override | html %]</span></p>
762 <div class="circ-settings">
763 [% IF Koha.Preference('SpecifyReturnDate') %]
764 <div class="date-select" id="return_date_override_fields">
765 <div class="hint">Specify return date [% INCLUDE 'date-format.inc' %]: </div>
767 <input type="text" size="13" id="return_date_override" name="return_date_override" value="[% return_date_override | html %]" />
771 <button type="button" class="action btn btn-default btn-xs" id="cleardate" name="cleardate">Clear</button>
772 <div class="circ-setting">
773 [% IF ( return_date_override_remember ) %]
774 <input type="checkbox" id="return_date_override_remember" name="return_date_override_remember" checked="checked" />
776 <input type="checkbox" id="return_date_override_remember" name="return_date_override_remember" />
778 <label for="return_date_override_remember"> Remember due date for next check in</label>
780 </div> <!-- /.date-select -->
783 [% IF ( CAN_user_updatecharges_writeoff && overduecharges ) %]
784 <div id="forgive-overdue-fines" class="circ-setting">
785 [% IF ( exemptfine ) %]
786 <input type="checkbox" id="exemptcheck" name="exemptfine" value="exemptfine" checked="checked" />
788 <input type="checkbox" id="exemptcheck" name="exemptfine" value="exemptfine" />
790 <label for="exemptcheck">Forgive overdue charges</label>
792 [% END %] <!-- overduecharges -->
794 <div id="book-drop-mode" class="circ-setting">
795 [% IF ( dropboxmode ) %]
796 <input type="checkbox" id="dropboxcheck" name="dropboxmode" value="dropboxmode" checked="checked" />
798 <input type="checkbox" id="dropboxcheck" name="dropboxmode" value="dropboxmode" />
800 <label for="dropboxcheck">Book drop mode</label>
803 [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %]
804 <div class="forgive-manual-hold-fees circ-setting">
805 [% IF ( forgivemanualholdsexpire ) %]
806 <input type="checkbox" id="forgivemanualholdsexpire" name="forgivemanualholdsexpire" value="forgivemanualholdsexpire" checked="checked" />
808 <input type="checkbox" id="forgivemanualholdsexpire" name="forgivemanualholdsexpire" value="forgivemanualholdsexpire" />
810 <label for="forgivemanualholdsexpire">Forgive fees for manually expired holds</label>
812 [% END %] <!-- overduecharges -->
814 </div> <!-- /.circ-settings -->
815 </fieldset> <!-- /#circ_returns_checkin -->
816 </form> <!-- /#checkin-form -->
819 <h2>Checked-in items</h2>
820 <table id="checkedintable">
823 <th class="ci-duedate">Due date</th>
824 <th class="ci-title">Title</th>
825 <th class="ci-author">Author</th>
826 <th class="ci-barcode">Barcode</th>
827 <th class="ci-homelibrary">Home library</th>
828 <th class="ci-holdinglibrary">Holding library</th>
829 <th class="ci-shelvinglocation">Shelving location</th>
830 <th class="ci-callnumber">Call number</th>
831 <th class="ci-dateaccessioned">Date acquired</th>
832 <th class="ci-recordlevelitemtype">Record-level itemtype</th>
833 <th class="ci-itemtype">Item type</th>
834 <th class="ci-collection">Collection</th>
835 <th class="ci-patron">Patron</th>
836 <th class="ci-note">Note</th>
840 [% FOREACH riloo IN riloop %]
842 <td class="ci-duedate">
843 [% IF ( riloo.duedate ) %]
844 [% IF ( riloo.return_overdue ) %]
845 <span class="overdue">[% riloo.duedate | html %] (overdue)</span>
847 [% riloo.duedate | html %]
852 [% IF ( riloo.damaged ) %]
853 <span class="dmg">[% AuthorisedValues.GetByCode( 'DAMAGED', riloo.damaged ) | html %]</span>
856 <td class="ci-title">
857 <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% riloo.itembiblionumber | uri %]">
858 [% riloo.itemtitle | html %]
859 [% FOREACH subtitle IN riloo.subtitle.split(' \\| ') %] <span class="subtitle">[% subtitle | html %]</span>[% END %]
860 [% FOREACH part_number IN riloo.part_number.split(' \\| ') %] <span class="part_number">[% part_number | html %]</span>[% END %]
861 [% FOREACH part_name IN riloo.part_name.split(' \\| ') %] <span class="part_name">[% part_name | html %]<span>[% END %]
863 [% IF ( riloo.enumchron ) %]
865 <span class="item_enumeration" style="white-space: nowrap;">[% riloo.enumchron | html %]</span>
868 <td class="ci-author">[% riloo.itemauthor | html %]</td>
869 <td class="ci-barcode">
870 <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% riloo.itembiblionumber | uri %]&itemnumber=[% riloo.itemnumber | uri %]#item[% riloo.itemnumber | uri %]">[% riloo.barcode | html %]</a>
872 <td class="ci-homelibrary">
873 [% Branches.GetName( riloo.homebranch ) | html %]
875 <td class="ci-holdinglibrary">
876 [% Branches.GetName( riloo.holdingbranch ) | html %]
878 <td class="ci-shelvinglocation">
879 <span class="shelvingloc">[% riloo.location | html %]</span>
881 <td class="ci-callnumber">
882 [% riloo.itemcallnumber | html %]
884 <td class="ci-dateaccessioned">
885 [% riloo.dateaccessioned | $KohaDates %]
887 <td class="ci-recordlevelitemtype">
888 [% ItemTypes.GetDescription( riloo.recordtype ) | html %]
890 <td class="ci-itemtype">
891 [% ItemTypes.GetDescription( riloo.itemtype ) | html %]
893 <td class="ci-collection">
894 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => riloo.ccode) | html %]
896 <td class="ci-patron">
897 [% IF ( riloo.duedate ) %]
898 [% INCLUDE 'patron-title.inc' patron=riloo.patron hide_patron_infos_if_needed=1 invert_name=1 %]
899 [% IF riloo.borissuescount %]
900 <span class="results_summary nowrap">
901 <span class="label">Checkouts:</span>
902 <span class="number_box">
903 <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% riloo.patron.borrowernumber | uri %]">[% riloo.borissuescount | html %]</a>
912 [% IF ( riloo.patron.borrowernotes ) %]
913 <p><span class="circ-hlt patron-note">[% riloo.patron.borrowernotes | html %]</span></p>
915 [% IF ( riloo.itemnote ) %]
916 <p><span class="circ-hlt item-note-public">[% riloo.itemnote | html %]</span></p>
918 [% IF ( riloo.itemnotes_nonpublic ) %]
919 <p><span class="circ-hlt item-note-nonpublic">[% riloo.itemnotes_nonpublic | html %]</span></p>
923 [% END # /FOREACH riloo %]
924 </table> <!-- /#checkedintable -->
925 [% END # /IF riloop %]
927 [% IF Koha.Preference('CircSidebar') %]
928 </div> <!-- /.col-sm-10.col-sm-push-2 -->
929 <div class="col-sm-2 col-sm-pull-10">
931 [% INCLUDE 'circ-nav.inc' %]
933 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
934 </div> <!-- /.row -->
936 </div> <!-- /.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 -->
937 </div> <!-- /.row -->
941 </div> <!-- /.col-sm-12 -->
942 </div> <!-- /.row -->
944 [% MACRO jsinclude BLOCK %]
945 [% INCLUDE 'datatables.inc' %]
946 [% INCLUDE 'columns_settings.inc' %]
947 [% INCLUDE 'calendar.inc' %]
948 [% Asset.js("lib/jquery/plugins/jquery-ui-timepicker-addon.min.js") | $raw %]
949 [% Asset.js("js/pages/circulation.js") | $raw %]
950 [% INCLUDE 'timepicker.inc' %]
953 function Dopop(link) {
954 var newin = window.open(link, 'popup', 'width=600,height=400,resizable=1,toolbar=0,scrollbars=1,top');
955 $("#barcode").focus();
957 $(document).ready(function () {
958 $("#checkin-form").preventDoubleFormSubmit();
959 $(".modal.block").modal({ backdrop: 'static'}).on('shown.bs.modal', function() {
960 $("#barcode").prop("disabled", true);
961 $(".show_checkin_dialog").show();
962 }).on('hidden.bs.modal', function() {
963 $("#barcode").prop("disabled", false).focus();
965 $(".modal.noblock").modal({ backdrop: 'static'}).on('shown.bs.modal', function() {
966 $("#barcode").prop("disabled", false).focus();
967 }).on('hidden.bs.modal', function() {
968 $("#barcode").prop("disabled", false).focus();
971 $("body").on("click", ".show_checkin_dialog button", function(e){
973 $(".modal").modal("show");
976 $(".print-slip").on('click', function(e) {
978 Dopop('hold-transfer-slip.pl?reserve_id=[% reserve_id | uri %]');
981 Dopop('hold-transfer-slip.pl?reserve_id=[% reserve_id | uri %]');
984 var columns_settings = [% TablesSettings.GetColumns( 'circ', 'returns', 'checkedintable', 'json' ) | $raw %]
985 var returns_table = KohaTable("checkedintable", {
990 "dom": 'B<"clearfix">t',
991 }, columns_settings);
993 $("#return_date_override").datetimepicker({
994 onClose: function(dateText, inst) {
995 if (validate_date(dateText, inst) ) {
996 $("#barcode").focus();
1003 }).on("change", function(e, value) {
1004 if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
1006 $("#return_date_override").on("blur", function() {
1007 check_valid_return_date();
1009 $("#checkin-form").submit(function( event ) {
1010 if ( !check_valid_return_date() ) {
1011 event.preventDefault();
1015 function check_valid_return_date() {
1016 if ( $("#return_date_override").val() ) {
1017 var datetime = DateTime_from_syspref( $("#return_date_override").val() );
1018 var now = new Date();
1019 if ( !datetime || datetime > now ) {
1020 alert("Invalid return date/time!");
1021 $("#return_date_override").val("")
1025 // Add saved date information to onscreen message, which
1026 // may or may not be hidden
1027 $("#saved_return_date").text( $("#return_date_override").val() );
1031 $("#exemptcheck").change(function () {
1032 if (this.checked == true) {
1033 $("#barcode").addClass("input-warning");
1034 $("#exemptfines").show();
1036 $("#barcode").removeClass("input-warning");
1037 $("#exemptfines").hide();
1039 $("#barcode").focus();
1041 $("#dropboxcheck").change(function () {
1042 if (this.checked == true) {
1043 $("#barcode").addClass("input-warning");
1044 $("#dropboxmode").show();
1046 $("#return_date_override_fields :input").prop('disabled', true);
1047 $("#return_date_override").datetimepicker("disable");
1049 $("#barcode").removeClass("input-warning");
1050 $("#dropboxmode").hide();
1052 $("#return_date_override_fields :input").prop('disabled', false);
1053 $("#return_date_override").datetimepicker("enable");
1055 $("#barcode").focus();
1057 $("#forgivemanualholdsexpire").change(function () {
1058 if (this.checked == true) {
1059 $("#barcode").addClass("input-warning");
1060 $("#forgivemanualholdsexpire-alert").show();
1062 $("#barcode").removeClass("input-warning");
1063 $("#forgivemanualholdsexpire-alert").hide();
1065 $("#barcode").focus();
1068 [% IF(overduecharges) %]
1069 $("#barcode").focus(function () {
1070 if (($("#exemptcheck").prop("checked") == true) || ($("#dropboxcheck").prop("checked") == true)) {
1071 $("#barcode").addClass("input-warning");
1073 $("#barcode").removeClass("input-warning");
1076 $("#barcode").blur(function () {
1077 $("#barcode").removeClass("input-warning");
1081 $('.openWin').on("click",function(e){
1082 Dopop( $(this).data("url") );
1085 $('.print').on("click",function(e){
1086 this.form.print_slip.value = 1;
1090 $('.cancel-hold').on("click",function(e){
1091 this.form.cancel_reserve.value = 1;
1095 $('.action').on("click",function(e){
1096 this.checked = false;
1097 this.form.return_date_override.value = '';
1098 this.form.return_date_override_remember.checked = false;
1099 this.form.barcode.focus();
1100 $("#return_date_remember").hide();
1104 $("#return_date_override_remember").on("change", function(){
1105 if( $(this).prop("checked" ) ){
1106 if( $("#return_date_override").val() == "" ){
1107 $("#saved_return_date").text( _("No date selected") );
1109 $("#saved_return_date").text( $("#return_date_override").val() );
1111 $("#return_date_remember").show();
1113 $("#return_date_remember").hide();
1116 $('[data-toggle="tooltip"]').tooltip();
1121 [% INCLUDE 'intranet-bottom.inc' %]