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 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
44 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
47 <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a>
50 <a href="#" aria-current="page">
57 <div class="main container-fluid">
59 <div class="col-sm-12">
63 [% IF Koha.Preference('CircSidebar') %]
64 <div class="col-sm-10 col-sm-push-2">
66 <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
69 [% BLOCK all_checkin_messages %]
70 [% IF hold_auto_filled %]
71 <div class="dialog message hold-auto-filled">
72 [% IF ( reservenotes ) %]
73 <h4>Notes: [% reservenotes | html %]</h4>
75 <h3>Hold filled for:</h3>
78 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 %]
79 <span class="patron-category"> - [% patron.category.description | html %]</span>
82 [% INCLUDE display_holdpatron_address %]
84 [% IF ( patron.phone ) %]
85 <li>[% patron.phone | html %]</li>
88 [% IF ( patron.email ) %]
90 [% IF ( transfertodo ) %]
91 [% patron.email | html %]
93 <a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a>
98 [% UNLESS ( transfertodo) %]
99 [% INCLUDE display_bormessagepref %]
102 [% IF ( patron.is_debarred ) %]
103 <li class="error">Patron is RESTRICTED</li>
106 [% IF ( patron.gonenoaddress ) %]
107 <li class="error">Patron's address is in doubt</li>
111 [% IF ( transfertodo ) %]
112 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
114 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
117 <a href="#" class="btn btn-default print print-slip">
118 <i class="fa fa-print"></i> Print
120 </div> <!-- /.hold-auto-filled -->
121 [% END # /IF hold_auto_filled %]
124 <div id="transfer-trigger" class="dialog message">
125 <h3>Reason for transfer</h3>
127 [%- SWITCH trigger -%]
128 [%- CASE 'Manual' -%]Manual
129 [%- CASE 'StockrotationAdvance' -%]Stock rotation advance
130 [%- CASE 'StockrotationRepatriation' -%]Stock rotation repatriation
131 [%- CASE 'ReturnToHome' -%]Return to home library
132 [%- CASE 'ReturnToHolding' -%]Return to holding library
133 [%- CASE 'RotatingCollection' -%]Rotating collection
134 [%- CASE 'Reserve' -%]Reserve
135 [%- CASE 'LostReserve' -%]Lost reserve
136 [%- CASE 'CancelReserve' -%]Cancelled reserve
142 [% IF privacy == 2 AND NOT Koha.Preference('AnonymousPatron') %]
143 <div class="dialog alert">
144 <strong>Error:</strong>
145 This patron has requested their circulation history be anonymized on check-in, but the AnonymousPatron system preference is empty or incorrect.
147 [% ELSIF NOT Koha.Preference('AnonymousPatron') AND Koha.Preference('OPACPrivacy') %]
148 <div class="dialog alert">
149 <strong>Error:</strong>
150 The system preference OPACPrivacy is set but AnonymousPatron is not! Please correct this before continuing circulation.
154 [% IF additional_materials && !needs_confirm && !multiple_confirmed %]
155 <div class="dialog message">
156 Note about the accompanying materials: [% additional_materials | html %]
160 [% IF ( collectionItemNeedsTransferred ) %]
161 <div id="rotating-collection" class="dialog message">
162 <h3>Please transfer item to: [% Branches.GetName( collectionBranch ) | html %]</h3>
163 <p><a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% itembarcode | html %]: [% title | html %]</a></p>
164 <p>This item is part of a rotating collection.</p>
165 <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>
169 <!-- Patron has added an issue note -->
170 [% IF ( issue.note) %]
171 <div class="dialog message">
173 <p>[% issue.notedate | $KohaDates %]</p>
174 <p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itembiblionumber | uri %]"> [% title | html %]</a> [% author | html %]</p>
175 <p>[% issue.note | html %]</p>
179 <!-- Patron has fines -->
181 <div class="dialog alert">
182 <h3>Patron has outstanding fines of [% fines | html %].</h3>
183 <p><a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% fineborrowernumber | uri %]">Make payment</a>.</p>
187 <!-- Item has return claim(s) -->
188 [% IF ( ReturnClaims ) %]
189 <div class="dialog alert return-claim">
190 <h3>This item has been claimed as returned by:</h3>
192 [% FOREACH rc IN ReturnClaims %]
194 [% INCLUDE 'patron-title.inc' patron=rc.patron hide_patron_infos_if_needed=1 invert_name=1 %]
201 <!-- Patron has waiting holds -->
202 [% IF ( waiting_holds ) %]
203 <div id="awaiting-pickup" class="dialog message">
204 <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>
205 <p><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% holdsborrowernumber | uri %]">Check out to this patron</a>.</p>
209 <!-- Patron is restricted and checkin was backdated -->
210 [% IF return_date_was_overriden && issue.patron.is_debarred %]
211 <div id="restricted_backdated" class="dialog message">
213 [% INCLUDE 'patron-title.inc' patron=issue.patron hide_patron_infos_if_needed=1 invert_name=1 %]
214 is restricted. Please verify this patron should still be restricted.
220 [% IF ( errmsgloop ) %]
221 <div class="dialog alert audio-alert-warning">
222 <h3>Check in message</h3>
223 [% IF itembiblionumber %]
224 <p><a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% itembarcode | html %]: [% title | html %]</a></p>
226 [% FOREACH errmsgloo IN errmsgloop %]
227 [% IF ( errmsgloo.NotForLoanStatusUpdated ) %]
228 <p class="problem ret_nflupdate">
229 Not for loan status updated.
231 [% IF errmsgloo.NotForLoanStatusUpdated.from %]
232 <span class="ret_updatedfrom">
233 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => errmsgloo.NotForLoanStatusUpdated.from ) | html %].
239 [% IF errmsgloo.NotForLoanStatusUpdated.to %]
240 <span class="ret_updatedto">
241 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.notforloan', authorised_value => errmsgloo.NotForLoanStatusUpdated.to ) | html %].
248 [% IF ( errmsgloo.ItemLocationUpdated ) %]
249 <p class="problem ret_location_update">
250 Item shelving location updated.
252 [% IF errmsgloo.ItemLocationUpdated.from %]
253 [% SET av_description = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => errmsgloo.ItemLocationUpdated.from ) %]
254 [% IF errmsgloo.ItemLocationUpdated.from == '' %]
256 [% ELSIF av_description == '' %]
257 [% errmsgloo.ItemLocationUpdated.from | html %] (No description available)
259 [% av_description | html %]
265 [% IF errmsgloo.ItemLocationUpdated.to %]
266 [% SET av_description = AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => errmsgloo.ItemLocationUpdated.to ) %]
267 [% IF errmsgloo.ItemLocationUpdated.to == '' %]
269 [% ELSIF av_description == '' %]
270 [% errmsgloo.ItemLocationUpdated.to | html %] (Not an authorized value)
272 [% av_description | html %]
279 [% IF ( errmsgloo.badbarcode ) %]
280 <p class="problem ret_badbarcode">No item with barcode: [% errmsgloo.msg | html %]</p>
282 [% IF ( errmsgloo.ispermanent ) %]
283 <p class="problem ret_ispermenant">Please return item to: [% Branches.GetName( errmsgloo.msg ) | html %]</p>
285 [% IF ( errmsgloo.notissued ) %]
286 <p class="problem ret_notissued">Not checked out.</p>
288 [% IF ( errmsgloo.localuse) %]
289 <p class="problem ret_localuse">Local use recorded</p>
291 [% IF ( errmsgloo.transferred ) %]
292 <p class="problem ret_transferred">Item received from [% Branches.GetName( errmsgloo.transferred ) | html %]</p>
294 [% IF ( errmsgloo.waslost ) %]
295 [% IF Koha.Preference('BlockReturnOfLostItems') %]
296 <p class="problem ret_blocked">Item is lost, cannot be checked in.</p>
298 <p class="problem ret_checkedin">Item was lost, now found.</p>
300 [% IF LostItemFeeRefunded and not Koha.Preference('BlockReturnOfLostItems') %]
301 <p class="problem ret_refund">A refund has been applied to the borrowing patron's account.</p>
302 [% ELSIF LostItemFeeCharged and not Koha.Preference('BlockReturnOfLostItems') %]
303 <p class="problem ret_charged">A refund for the lost item charge has been applied to the borrowing patron's account, and new overdue charge has been calculated and applied.</p>
304 [% ELSIF LostItemFeeRestored and not Koha.Preference('BlockReturnOfLostItems') %]
305 <p class="problem ret_restored">A refund for the lost item charge has been applied to the borrowing patron's account and if an overdue fine was forgiven when the item was marked as lost, it has been reverted.</p>
306 [% ELSIF Koha.Preference('BlockReturnOfLostItems') %]
307 <h5>Cannot check in</h5>
308 <p><strong>NOT CHECKED IN</strong></p>
310 <p class="problem ret_feeremains">Any lost item fees for this item will remain on the patron's account.</p>
313 [% IF ( errmsgloo.withdrawn ) %]
314 [% IF Koha.Preference('BlockReturnOfWithdrawnItems') %]
315 <h5>Cannot check in</h5>
316 <p><strong>NOT CHECKED IN</strong></p>
318 <p class="problem ret_withdrawn">Item is withdrawn.</p>
320 [% IF ( errmsgloo.debarred ) %]
321 <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>
323 [% IF ( errmsgloo.prevdebarred ) %]
324 <p class="problem ret_prevdebarred"><strong>Reminder: </strong>Patron was earlier restricted until [% errmsgloo.prevdebarred | $KohaDates %].</p>
326 [% IF ( errmsgloo.foreverdebarred ) %]
327 <p class="problem ret_foreverdebarred"><strong>Reminder: </strong>Patron has an indefinite restriction.</p>
329 [% IF errmsgloo.data_corrupted %]
330 <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 correct all errors shown on the "System information" tab</p>
332 [% END # /FOREACH errmsgloo %]
333 </div> <!-- /.dialog.dialog-alert -->
334 [% END #/IF errmsgloop %]
336 [% IF ( checkinmsg ) %]
337 [% IF ( checkinmsgtype == 'alert' ) %]
338 <div class="dialog alert">
340 <div class="dialog message">
342 <p class="problem ret_checkinmsg">[% checkinmsg | html_line_break %]</p>
344 [% END # /IF checkinmsg %]
345 [% END # /BLOCK all_checkin_messages %]
347 [% IF needs_confirm %]
348 <div id="circ-needsconfirmation-modal" class="modal fade audio-alert-action block">
349 <div class="modal-dialog">
350 <div class="modal-content">
351 <div class="modal-header">
352 <h3>Please confirm checkin</h3>
354 <div class="modal-body">
357 Please confirm that the accompanying materials are present: <strong>[% additional_materials | html %]</strong>
361 <div class="modal-footer">
362 <form method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off">
363 <input type="hidden" name="barcode" value="[% itembarcode | html %]" />
364 <input type="hidden" name="multiple_confirm" value="1" />
365 [% FOREACH inputloo IN inputloop %]
366 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
367 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
368 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
370 <button type="submit" class="approve" accesskey="y"><i class="fa fa-check"></i> Yes, checkin (Y)</button>
372 <button type="button" data-dismiss="modal" class="deny" accesskey="n"><i class="fa fa-times"></i> No, don't checkin (N)</button>
380 <div id="wrong-branch-modal" class="modal fade audio-alert-action block">
381 <div class="modal-dialog">
382 <div class="modal-content">
383 <form method="post" action="returns.pl" name="mainform" id="mainform">
384 <div class="modal-header">
389 <div class="modal-body">
391 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
392 [% itembarcode | html %]: [% title | html %]
401 This item must be checked in at following library:
403 [% Branches.GetName( rightbranch ) | html %]
406 [% INCLUDE all_checkin_messages %]
407 </div> <!-- /.modal-body -->
408 <div class="modal-footer">
409 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
411 </form> <!-- /#mainform -->
412 </div> <!-- /.modal-content -->
413 </div> <!-- /.modal-dialog -->
414 </div> <!-- /#wrong-branch-modal -->
415 [% END # /IF wrongbranch %]
417 <!-- case of a mistake in transfer loop -->
418 [% UNLESS ( hold_auto_filled && diffbranch ) %]
419 [% IF WrongTransfer && !transfertodo %]
420 [% IF Koha.Preference('TransfersBlockCirc') %]
421 <div id="wrong-transfer-modal" class="modal fade audio-alert-action block">
423 <div id="wrong-transfer-modal" class="modal fade audio-alert-action noblock">
425 <div class="modal-dialog">
426 <div class="modal-content">
427 <div class="modal-header">
429 Please return item to: [% Branches.GetName( TransferWaitingAt ) | html %]
432 <div class="modal-body">
434 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
435 [% itembarcode | html %]: [% title | html %]
438 [% INCLUDE all_checkin_messages %]
440 <div class="modal-footer">
442 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
444 <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>
445 <!-- CANCEL TRANSFER -->
446 <form method="post" action="returns.pl" name="mainform">
447 <button class="btn btn-default deny" type="submit"><i class="fa fa-times"></i> Cancel transfer</button>
448 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
449 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
450 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
451 <input type="hidden" name="canceltransfer" value="1" />
452 [% FOREACH inputloo IN inputloop %]
453 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
454 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
455 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
457 </form> <!-- /mainform -->
458 </div> <!-- /.modal-footer -->
459 </div> <!-- /.modal-content -->
460 </div> <!-- /.modal-dialog -->
461 </div> <!-- /#wrong-transfer-modal -->
462 [% END # /IF WrongTransfer && !transfertodo %]
463 [% END # /UNLESS hold_auto_filled && diffbranch %]
467 <div id="hold-found1" class="modal fade audio-alert-action block">
468 <div class="modal-dialog">
469 <div class="modal-content">
470 <form method="post" action="returns.pl" class="confirm">
471 <div class="modal-header">
473 Hold found (item is already waiting):
475 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% title | html %]</a>
476 <div class="hold-found-barcode">
477 <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itembiblionumber | uri %]&itemnumber=[% itemnumber | uri %]">[% itembarcode | html %]</a>
482 <div class="modal-body">
483 [% IF ( reservenotes ) %]
484 <h4>Notes: [% reservenotes | html %]</h4>
490 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 link_to="circulation_reserves" %]
491 <span class="patron-category"> - [% patron.category.description | html %]</span>
493 [% INCLUDE display_holdpatron_address %]
494 [% IF ( patron.phone ) %]
495 <li> [% patron.phone | html %]</li>
498 [% IF ( patron.email ) %]
499 <li><a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a></li>
502 [% IF ( patron.is_debarred ) %]
503 <li class="error">Patron is RESTRICTED</li>
506 [% IF ( patron.gonenoaddress ) %]
507 <li class="error">Patron's address is in doubt</li>
511 [% IF ( transfertodo ) %]
512 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
514 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
517 [% FOREACH inputloo IN inputloop %]
518 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
519 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
520 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
523 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
524 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
525 <input type="hidden" name="biblionumber" value="[% itembiblionumber | html %]" />
526 <input type="hidden" name="reserve_id" value="[% reserve_id | html %]" />
527 <input type="hidden" name="diffBranch" value="[% destbranch | html %]" />
528 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
529 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
530 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
532 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
533 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
534 [% INCLUDE all_checkin_messages %]
535 </div> <!-- /.modal-body -->
537 <div class="modal-footer">
538 <input type="hidden" name="cancel_reserve" value="0" />
539 <input id="confirm-hold-barcode" type="hidden" name="barcode" value="[% barcode | html %]" />
541 <button type="submit" class="btn btn-default approve" data-dismiss="modal">
542 <i class="fa fa-check"></i> Confirm hold
545 <input type="hidden" name="print_slip" value="0" />
546 <button type="button" class="btn btn-default print">
547 <i class="fa fa-print"></i> Print slip and confirm
550 <button type="button" class="btn btn-default deny cancel-hold">
551 <i class="fa fa-times"></i> Cancel hold
553 </div> <!-- /.modal-footer -->
554 </form> <!-- /.confirm -->
555 </div> <!-- /.modal-content -->
556 </div> <!-- /.modal-dialog -->
557 </div> <!-- /#hold-found1 -->
558 [% END # /IF waiting %]
560 [% IF transfer || needstransfer %]
561 [% IF Koha.Preference('TransfersBlockCirc') %]
562 <div id="item-transfer-modal" class="modal fade audio-alert-action block">
564 <div id="item-transfer-modal" class="modal fade audio-alert-action noblock">
566 <div class="modal-dialog">
567 <div class="modal-content">
568 <form method="post" action="returns.pl" name="mainform" id="mainform">
570 <input type="hidden" name="print_slip" value="0" />
572 <div class="modal-header">
574 Please return this item to [% IF transfer %][% Branches.GetName( transfer ) | html %][% ELSE %][% Branches.GetName( returnbranch ) | html %][% END %]
577 <div class="modal-body">
579 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">
580 [% itembarcode | html %]: [% title | html %]
588 <input type="hidden" name="tobranch" value="[% returnbranch | html %]" />
589 <input type="hidden" name="transferitem" value="[% itemnumber | html %]" />
590 <input type="hidden" name="barcode" value="0" />
591 <input type="hidden" name="trigger" value="[% trigger | html %]" />
592 [% INCLUDE all_checkin_messages %]
594 <div class="modal-footer">
596 <button type="submit" name="dotransfer" value="Yes" class="btn btn-default approve"><i class="fa fa-check"></i> Yes</button>
597 <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>
598 <button type="button" data-dismiss="modal" class="btn btn-default deny" name="notransfer" value="No"><i class="fa fa-times"></i> No</button>
600 <button type="button" data-dismiss="modal" class="btn btn-default approve"><i class="fa fa-check"></i> OK</button>
601 <button type="button" data-dismiss="modal" name="dotransfer" class="btn btn-default print openWin" data-url="transfer-slip.pl?transferitem=[% itemnumber | uri %]&branchcode=[% transfer | uri %]&op=slip"><i class="fa fa-print"></i> Print slip</button>
603 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
604 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
605 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
606 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
607 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
608 [% FOREACH inputloo IN inputloop %]
609 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
610 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
611 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
613 </div> <!-- /.modal-footer -->
614 </form> <!-- /#mainform -->
615 </div> <!-- /.modal-content -->
616 </div> <!-- /.modal-dialog -->
617 </div> <!-- /#item-transfer-modal -->
618 [% END # /IF transfer || needstransfer %]
620 <!-- case of simple return no issue or transfer but with a reservation -->
621 [% IF ( reserved ) %]
623 <div id="hold-found2" class="modal fade audio-alert-action block">
624 <div class="modal-dialog">
625 <div class="modal-content">
626 <form method="post" action="returns.pl" class="confirm">
628 <input type="hidden" name="print_slip" value="0" />
630 <div class="modal-header">
634 <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber | uri %]">[% title | html %]</a>
635 <div class="hold-found-barcode">
636 (<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% itembiblionumber | uri %]&itemnumber=[% itemnumber | uri %]">[% itembarcode | html %]</a>)
641 <div class="modal-body">
642 [% IF ( reservenotes ) %]
644 <p>[% reservenotes | html %]</p>
650 [% INCLUDE 'patron-title.inc' patron=patron hide_patron_infos_if_needed=1 invert_name=1 link_to="circulation_reserves" %]
651 <span class="patron-category"> - [% patron.category.description | html %]</span>
654 [% INCLUDE display_holdpatron_address %]
656 [% IF ( patron.phone ) %]
657 <li>[% patron.phone | html %]</li>
660 [% IF ( patron.email ) %]
662 [% IF ( transfertodo ) %]
663 [% patron.email | html %]
665 <a id="boremail" href="mailto:[% patron.email | html %]">[% patron.email | html %]</a>
670 [% UNLESS ( transfertodo) %]
671 [% INCLUDE display_bormessagepref %]
674 [% IF ( patron.is_debarred ) %]
675 <li class="error">Patron is RESTRICTED</li>
678 [% IF ( patron.gonenoaddress ) %]
679 <li class="error">Patron's address is in doubt</li>
682 [% IF ( transfertodo ) %]
683 <h4><strong>Transfer to:</strong> [% Branches.GetName( destbranch ) | html %]</h4>
685 <h4><strong>Hold at</strong> [% Branches.GetName( destbranch ) | html %]</h4>
688 [% FOREACH inputloo IN inputloop %]
689 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
690 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
691 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
694 <input type="hidden" name="itemnumber" value="[% itemnumber | html %]" />
695 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
696 <input type="hidden" name="biblionumber" value="[% itembiblionumber | html %]" />
697 <input type="hidden" name="reserve_id" value="[% reserve_id | html %]" />
698 <input type="hidden" name="diffBranch" value="[% destbranch | html %]" />
699 <input type="hidden" name="exemptfine" value="[% exemptfine | html %]" />
700 <input type="hidden" name="dropboxmode" value="[% dropboxmode | html %]" />
701 <input type="hidden" name="forgivemanualholdsexpire" value="[% forgivemanualholdsexpire | html %]" />
702 <input type="hidden" name="return_date_override" value="[% return_date_override | html %]" />
703 <input type="hidden" name="return_date_override_remember" value="[% return_date_override_remember | html %]" />
704 [% INCLUDE all_checkin_messages %]
707 <div class="modal-footer">
708 [% IF ( transfertodo ) %]
709 <button type="submit" class="btn btn-default approve">
710 <i class="fa fa-check"></i> Confirm hold and transfer
712 <button type="button" class="btn btn-default print">
713 <i class="fa fa-print"></i> Print slip, transfer, and confirm
716 <button type="submit" class="btn btn-default approve">
717 <i class="fa fa-check"></i> Confirm hold
719 <button type="button" class="btn btn-default print">
720 <i class="fa fa-print"></i> Print slip and confirm
724 <button data-dismiss="modal" aria-hidden="true" type="submit" class="btn btn-default deny">
725 <i class="fa fa-times"></i> Ignore
727 </div> <!-- /.modal-footer -->
728 </form> <!-- /.confirm -->
729 </div> <!-- /.modal-content -->
730 </div> <!-- /.modal-dialog -->
731 </div> <!-- /#hold-found2 -->
732 [% END #/IF reserved %]
733 [% END # /IF found %]
735 <div class="static_checkin_messages">
736 [% INCLUDE all_checkin_messages %]
739 <form id="checkin-form" method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" >
740 <fieldset id="circ_returns_checkin">
741 <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>
744 <div class="col-sm-6">
745 <div class="hint">Enter item barcode:</div>
746 <div class="form-control-group">
747 [% IF ( exemptfine ) %]
748 <input name="barcode" id="barcode" size="14" class="focus input-warning" type="text" />
749 [% ELSIF ( dropboxmode ) %]
750 <input name="barcode" id="barcode" size="14" class="barcode focus input-warning" />
752 <input name="barcode" id="barcode" size="14" class="barcode focus" />
754 <button type="submit" class="btn btn-default">Check in</button>
755 [% FOREACH inputloo IN inputloop %]
756 <input type="hidden" name="ri-[% inputloo.counter | html %]" value="[% inputloo.barcode | html %]" />
757 <input type="hidden" name="dd-[% inputloo.counter | html %]" value="[% inputloo.duedate | html %]" />
758 <input type="hidden" name="bn-[% inputloo.counter | html %]" value="[% inputloo.borrowernumber | html %]" />
761 <div id="show-circ-settings">
762 <a href="#"><i class="fa circ-settings-icon fa-caret-down"></i> Checkin settings</a>
765 <div class="col-sm-6">
766 [% IF ( exemptfine ) %]
767 <div id="exemptfines" class="checkin-active-setting">
769 <div id="exemptfines" class="checkin-active-setting" style="display:none;">
771 <p><i class="fa fa-check"></i> Fines for returned items are forgiven.</p>
774 [% IF ( forgivemanualholdsexpire ) %]
775 <div id="forgivemanualholdsexpire-alert" class="checkin-active-setting">
777 <div id="forgivemanualholdsexpire-alert" class="checkin-active-setting" style="display:none;">
779 <p><i class="fa fa-check"></i> Fines are not charged for manually cancelled holds.</p>
782 [% IF ( dropboxmode ) %]
783 <div id="dropboxmode" class="checkin-active-setting">
785 <div id="dropboxmode" class="checkin-active-setting" style="display:none;">
787 <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>
789 [% IF ( return_date_override_remember ) %]
790 <div id="return_date_remember" class="checkin-active-setting">
792 <div id="return_date_remember" class="checkin-active-setting" style="display:none;">
794 <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>
799 <div class="circ-settings">
800 [% IF Koha.Preference('SpecifyReturnDate') %]
801 <div class="date-select" id="return_date_override_fields">
802 <div class="hint">Specify return date [% INCLUDE 'date-format.inc' %]: </div>
804 <input type="text" size="13" id="return_date_override" name="return_date_override" value="[% return_date_override | html %]" />
808 <button type="button" class="action btn btn-default btn-xs" id="cleardate" name="cleardate">Clear</button>
809 <div class="circ-setting">
810 [% IF ( return_date_override_remember ) %]
811 <input type="checkbox" id="return_date_override_remember" name="return_date_override_remember" checked="checked" />
813 <input type="checkbox" id="return_date_override_remember" name="return_date_override_remember" />
815 <label for="return_date_override_remember"> Remember return date for next check in</label>
817 </div> <!-- /.date-select -->
820 [% IF ( CAN_user_updatecharges_writeoff && overduecharges ) %]
821 <div id="forgive-overdue-fines" class="circ-setting">
822 [% IF ( exemptfine ) %]
823 <input type="checkbox" id="exemptcheck" name="exemptfine" value="exemptfine" checked="checked" />
825 <input type="checkbox" id="exemptcheck" name="exemptfine" value="exemptfine" />
827 <label for="exemptcheck">Forgive overdue charges</label>
829 [% END %] <!-- overduecharges -->
831 <div id="book-drop-mode" class="circ-setting">
832 [% IF ( dropboxmode ) %]
833 <input type="checkbox" id="dropboxcheck" name="dropboxmode" value="dropboxmode" checked="checked" />
835 <input type="checkbox" id="dropboxcheck" name="dropboxmode" value="dropboxmode" />
837 <label for="dropboxcheck">Book drop mode</label>
840 [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %]
841 <div class="forgive-manual-hold-fees circ-setting">
842 [% IF ( forgivemanualholdsexpire ) %]
843 <input type="checkbox" id="forgivemanualholdsexpire" name="forgivemanualholdsexpire" value="forgivemanualholdsexpire" checked="checked" />
845 <input type="checkbox" id="forgivemanualholdsexpire" name="forgivemanualholdsexpire" value="forgivemanualholdsexpire" />
847 <label for="forgivemanualholdsexpire">Forgive fees for manually expired holds</label>
849 [% END %] <!-- overduecharges -->
851 </div> <!-- /.circ-settings -->
852 </fieldset> <!-- /#circ_returns_checkin -->
853 </form> <!-- /#checkin-form -->
856 <h2>Checked-in items</h2>
857 <table id="checkedintable">
860 <th class="ci-duedate">Due date</th>
861 <th class="ci-title">Title</th>
862 <th class="ci-author">Author</th>
863 <th class="ci-barcode">Barcode</th>
864 <th class="ci-homelibrary">Home library</th>
865 <th class="ci-holdinglibrary">Holding library</th>
866 <th class="ci-shelvinglocation">Shelving location</th>
867 <th class="ci-callnumber">Call number</th>
868 <th class="ci-dateaccessioned">Date acquired</th>
869 <th class="ci-recordlevelitemtype">Record-level itemtype</th>
870 <th class="ci-itemtype">Item type</th>
871 <th class="ci-collection">Collection</th>
872 <th class="ci-patron">Patron</th>
873 <th class="ci-note">Note</th>
877 [% FOREACH riloo IN riloop %]
879 <td class="ci-duedate">
880 [% IF ( riloo.duedate ) %]
881 [% IF ( riloo.return_overdue ) %]
882 <span class="overdue">[% riloo.duedate | html %] (overdue)</span>
884 [% riloo.duedate | html %]
889 [% IF ( riloo.damaged ) %]
890 <span class="dmg">[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => riloo.damaged ) | html %]</span>
893 <td class="ci-title">
894 <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% riloo.itembiblionumber | uri %]">
895 [% riloo.itemtitle | html %]
896 [% FOREACH subtitle IN riloo.subtitle.split(' \\| ') %] <span class="subtitle">[% subtitle | html %]</span>[% END %]
897 [% FOREACH part_number IN riloo.part_number.split(' \\| ') %] <span class="part_number">[% part_number | html %]</span>[% END %]
898 [% FOREACH part_name IN riloo.part_name.split(' \\| ') %] <span class="part_name">[% part_name | html %]<span>[% END %]
900 [% IF ( riloo.enumchron ) %]
902 <span class="item_enumeration" style="white-space: nowrap;">[% riloo.enumchron | html %]</span>
905 <td class="ci-author">[% riloo.itemauthor | html %]</td>
906 <td class="ci-barcode">
907 <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% riloo.itembiblionumber | uri %]&itemnumber=[% riloo.itemnumber | uri %]#item[% riloo.itemnumber | uri %]">[% riloo.barcode | html %]</a>
909 <td class="ci-homelibrary">
910 [% Branches.GetName( riloo.homebranch ) | html %]
912 <td class="ci-holdinglibrary">
913 [% Branches.GetName( riloo.holdingbranch ) | html %]
915 <td class="ci-shelvinglocation">
916 <span class="shelvingloc">[% riloo.location | html %]</span>
918 <td class="ci-callnumber">
919 [% riloo.itemcallnumber | html %]
921 <td class="ci-dateaccessioned">
922 [% riloo.dateaccessioned | $KohaDates %]
924 <td class="ci-recordlevelitemtype">
925 [% ItemTypes.GetDescription( riloo.recordtype ) | html %]
927 <td class="ci-itemtype">
928 [% ItemTypes.GetDescription( riloo.itemtype ) | html %]
930 <td class="ci-collection">
931 [% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => riloo.ccode) | html %]
933 <td class="ci-patron">
934 [% IF ( riloo.duedate ) %]
935 [% INCLUDE 'patron-title.inc' patron=riloo.patron hide_patron_infos_if_needed=1 invert_name=1 %]
936 [% IF riloo.borissuescount %]
937 <span class="results_summary nowrap">
938 <span class="label">Checkouts:</span>
939 <span class="number_box">
940 <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% riloo.patron.borrowernumber | uri %]">[% riloo.borissuescount | html %]</a>
944 <a class="btn btn-default btn-xs printcheckinslip" href="#" data-borrowernumber="[% riloo.patron.borrowernumber | html %]"><i class="fa fa-print"></i> Print checkin slip</a>
950 [% IF ( riloo.patron.borrowernotes ) %]
951 <p><span class="circ-hlt patron-note">[% riloo.patron.borrowernotes | html %]</span></p>
953 [% IF ( riloo.itemnote ) %]
954 <p><span class="circ-hlt item-note-public">[% riloo.itemnote | html %]</span></p>
956 [% IF ( riloo.itemnotes_nonpublic ) %]
957 <p><span class="circ-hlt item-note-nonpublic">[% riloo.itemnotes_nonpublic | html %]</span></p>
961 [% END # /FOREACH riloo %]
962 </table> <!-- /#checkedintable -->
963 [% END # /IF riloop %]
965 [% IF Koha.Preference('CircSidebar') %]
966 </div> <!-- /.col-sm-10.col-sm-push-2 -->
967 <div class="col-sm-2 col-sm-pull-10">
969 [% INCLUDE 'circ-nav.inc' %]
971 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
972 </div> <!-- /.row -->
974 </div> <!-- /.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 -->
975 </div> <!-- /.row -->
979 </div> <!-- /.col-sm-12 -->
980 </div> <!-- /.row -->
982 [% MACRO jsinclude BLOCK %]
983 [% INCLUDE 'datatables.inc' %]
984 [% INCLUDE 'columns_settings.inc' %]
985 [% INCLUDE 'calendar.inc' %]
986 [% Asset.js("lib/jquery/plugins/jquery-ui-timepicker-addon.min.js") | $raw %]
987 [% Asset.js("js/pages/circulation.js") | $raw %]
988 [% INCLUDE 'timepicker.inc' %]
991 function Dopop(link) {
992 var newin = window.open(link, 'popup', 'width=600,height=400,resizable=1,toolbar=0,scrollbars=1,top');
993 $("#barcode").focus();
995 $(document).ready(function () {
996 $("#checkin-form").preventDoubleFormSubmit();
997 $(".modal.block").modal({ backdrop: 'static'}).on('shown.bs.modal', function() {
998 $("#barcode").prop("disabled", true);
999 $(".show_checkin_dialog").show();
1000 }).on('hidden.bs.modal', function() {
1001 $("#barcode").prop("disabled", false).focus();
1003 $(".modal.noblock").modal({ backdrop: 'static'}).on('shown.bs.modal', function() {
1004 $("#barcode").prop("disabled", false).focus();
1005 }).on('hidden.bs.modal', function() {
1006 $("#barcode").prop("disabled", false).focus();
1009 $("body").on("click", ".show_checkin_dialog button", function(e){
1011 $(".modal").modal("show");
1014 $(".print-slip").on('click', function(e) {
1016 Dopop('hold-transfer-slip.pl?reserve_id=[% reserve_id | uri %]');
1019 Dopop('hold-transfer-slip.pl?reserve_id=[% reserve_id | uri %]');
1022 var columns_settings = [% TablesSettings.GetColumns( 'circ', 'returns', 'checkedintable', 'json' ) | $raw %]
1023 var returns_table = KohaTable("checkedintable", {
1028 "dom": 'B<"clearfix">t',
1029 }, columns_settings);
1031 $("#return_date_override").datetimepicker({
1032 onClose: function(dateText, inst) {
1033 if (validate_date(dateText, inst) ) {
1034 $("#barcode").focus();
1041 }).on("change", function(e, value) {
1042 if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
1044 $("#return_date_override").on("blur", function() {
1045 check_valid_return_date();
1047 $("#checkin-form").submit(function( event ) {
1048 if ( !check_valid_return_date() ) {
1049 event.preventDefault();
1053 function check_valid_return_date() {
1054 if ( $("#return_date_override").val() ) {
1055 var datetime = DateTime_from_syspref( $("#return_date_override").val() );
1056 var now = new Date();
1057 if ( !datetime || datetime > now ) {
1058 alert("Invalid return date/time!");
1059 $("#return_date_override").val("")
1063 // Add saved date information to onscreen message, which
1064 // may or may not be hidden
1065 $("#saved_return_date").text( $("#return_date_override").val() );
1069 $("#exemptcheck").change(function () {
1070 if (this.checked == true) {
1071 $("#barcode").addClass("input-warning");
1072 $("#exemptfines").show();
1074 $("#barcode").removeClass("input-warning");
1075 $("#exemptfines").hide();
1077 $("#barcode").focus();
1079 $("#dropboxcheck").change(function () {
1080 if (this.checked == true) {
1081 $("#barcode").addClass("input-warning");
1082 $("#dropboxmode").show();
1084 $("#return_date_override_fields :input").prop('disabled', true);
1085 $("#return_date_override").datetimepicker("disable");
1087 $("#barcode").removeClass("input-warning");
1088 $("#dropboxmode").hide();
1090 $("#return_date_override_fields :input").prop('disabled', false);
1091 $("#return_date_override").datetimepicker("enable");
1093 $("#barcode").focus();
1095 $("#forgivemanualholdsexpire").change(function () {
1096 if (this.checked == true) {
1097 $("#barcode").addClass("input-warning");
1098 $("#forgivemanualholdsexpire-alert").show();
1100 $("#barcode").removeClass("input-warning");
1101 $("#forgivemanualholdsexpire-alert").hide();
1103 $("#barcode").focus();
1106 [% IF(overduecharges) %]
1107 $("#barcode").focus(function () {
1108 if (($("#exemptcheck").prop("checked") == true) || ($("#dropboxcheck").prop("checked") == true)) {
1109 $("#barcode").addClass("input-warning");
1111 $("#barcode").removeClass("input-warning");
1114 $("#barcode").blur(function () {
1115 $("#barcode").removeClass("input-warning");
1119 $('.openWin').on("click",function(e){
1120 Dopop( $(this).data("url") );
1123 $('.print').on("click",function(e){
1124 this.form.print_slip.value = 1;
1125 let barcode = document.getElementById('confirm-hold-barcode');
1126 if ( barcode ) barcode.remove();
1130 $('.cancel-hold').on("click",function(e){
1131 this.form.cancel_reserve.value = 1;
1135 $('.action').on("click",function(e){
1136 this.checked = false;
1137 this.form.return_date_override.value = '';
1138 this.form.return_date_override_remember.checked = false;
1139 this.form.barcode.focus();
1140 $("#return_date_remember").hide();
1144 $("#return_date_override_remember").on("change", function(){
1145 if( $(this).prop("checked" ) ){
1146 if( $("#return_date_override").val() == "" ){
1147 $("#saved_return_date").text( _("No date selected") );
1149 $("#saved_return_date").text( $("#return_date_override").val() );
1151 $("#return_date_remember").show();
1153 $("#return_date_remember").hide();
1156 $('[data-toggle="tooltip"]').tooltip();
1158 $(".printcheckinslip").on("click", function(e){
1160 var borrowernumber = $(this).data('borrowernumber');
1161 window.open("/cgi-bin/koha/members/printslip.pl?borrowernumber=" + borrowernumber + "&print=checkinslip", "printwindow");
1168 [% INCLUDE 'intranet-bottom.inc' %]