[% USE KohaDates %]
-[% USE KohaBranchName %]
+[% USE Branches %]
+[% USE Koha %]
+[% USE Borrowers %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Circulation › Check in [% title |html %]</title>
[% INCLUDE 'doc-head-close.inc' %]
+
+[% INCLUDE 'calendar.inc' %]
+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery-ui-timepicker-addon.min.js"></script>
+
<script type="text/javascript">
//<![CDATA[
function Dopop(link) {
$("#barcode").focus();
}
$(document).ready(function () {
+ $("#return_date_override").datetimepicker({
+ onClose: function(dateText, inst) { $("#barcode").focus(); },
+ defaultDate: -1,
+ hour: 23,
+ minute: 59,
+ maxDate: 0
+ });
+ $("#return_date_override").on("blur", function() {
+ check_valid_return_date();
+ });
+ $("#checkin-form").submit(function( event ) {
+ if ( !check_valid_return_date() ) {
+ event.preventDefault();
+ }
+ });
+
+ function check_valid_return_date() {
+ if ( $("#return_date_override").val() ) {
+ var datetime = DateTime_from_syspref( $("#return_date_override").val() );
+ var now = new Date();
+ if ( !datetime || datetime > now ) {
+ alert("Invalid return date/time!");
+ $("#return_date_override").val("")
+ return false;
+ }
+ }
+ return true;
+ }
+
$("#exemptcheck").change(function () {
if (this.checked == true) {
$("#barcode").addClass("alert");
if (this.checked == true) {
$("#barcode").addClass("alert");
$("#dropboxmode").show();
+
+ $("#return_date_override_fields :input").attr("disabled", true);
+ $("#return_date_override").datetimepicker("disable");
} else {
$("#barcode").removeClass("alert");
$("#dropboxmode").hide();
+
+ $("#return_date_override_fields :input").attr("disabled", false);
+ $("#return_date_override").datetimepicker("enable");
}
$("#barcode").focus();
});
</div>
[% END %]
+<!-- Patron is restricted and checkin was backdated -->
+[% IF return_date_was_overriden && Borrowers.IsDebarred( borrower ) %]
+ <div id="restricted_backdated" class="dialog message">
+ <h3>
+ <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrower.borrowernumber %]">
+ [% borrower.firstname %] [% borrower.surname %]
+ </a>
+ is restricted. Please verify this patron should still be restricted.
+ </h3>
+ </div>
+[% END %]
[% IF ( wrongbranch ) %]
<div class="dialog alert"><h3>Cannot check in</h3><p>This item must be checked in at its home library. <strong>NOT CHECKED IN</strong></p>
</div>
[% END %]
<!-- case of a mistake in transfer loop -->
-[% IF ( WrongTransfer ) %]<div id="return2" class="dialog message"><!-- WrongTransfer --><h3>Please return <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber %]">[% title |html %]</a> to [% TransferWaitingAt | $KohaBranchName %]</h3><h3><a href="#" onclick="Dopop('transfer-slip.pl?transferitem=[% itemnumber %]&&branchcode=[% homebranch %]&op=slip'); return true;">Print slip</a> or <a href="/cgi-bin/koha/circ/returns.pl?itemnumber=[% itemnumber %]&canceltransfer=1">Cancel transfer</a></h3>
+[% IF ( WrongTransfer ) %]<div id="return2" class="dialog message"><!-- WrongTransfer --><h3>Please return <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber %]">[% title |html %]</a> to [% Branches.GetName( TransferWaitingAt ) %]</h3><h3><a href="#" onclick="Dopop('transfer-slip.pl?transferitem=[% itemnumber %]&&branchcode=[% homebranch %]&op=slip'); return true;">Print slip</a> or <a href="/cgi-bin/koha/circ/returns.pl?itemnumber=[% itemnumber %]&canceltransfer=1">Cancel transfer</a></h3>
[% IF ( wborcnum ) %]<h5>Hold for:</h5>
<ul><li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">
[% borsurname %], [% borfirstname %]</a> ([% borcnum %])</li>
<!-- waiting -->
[% IF ( soundon ) %]
-<audio src="/intranet-tmpl/prog/sound/ending.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+<audio src="[% interface %]/[% theme %]/sound/ending.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
<div id="hold-found1" class="dialog message">
[% IF ( diffbranch ) %]
<!-- diffbranch -->
[% IF ( soundon ) %]
- <audio src="/intranet-tmpl/prog/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+ <audio src="[% interface %]/[% theme %]/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
<div id="transfer-needed" class="dialog message">
<h3>Hold needing transfer found: <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itembiblionumber %]">[% title |html %]</a></h3>
<h3>Please return <a href="/cgi-bin/koha/catalogue/detail.pl?type=intra&biblionumber=[% itembiblionumber %]">[% title or "item" |html %]</a> to [% homebranchname %]<br/>( <a href="#" onclick="Dopop('transfer-slip.pl?transferitem=[% itemnumber %]&branchcode=[% homebranch %]&op=slip'); return true;">Print slip</a> )</h3>
</div>
[% IF ( soundon ) %]
- <audio src="/intranet-tmpl/prog/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+ <audio src="[% interface %]/[% theme %]/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
[% END %]
[% IF ( needstransfer ) %]
<!-- needstransfer -->
[% IF ( soundon ) %]
- <audio src="/intranet-tmpl/prog/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+ <audio src="[% interface %]/[% theme %]/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
<div id="item-transfer" class="dialog message"><h3> This item needs to be transferred to [% homebranchname %]</h3>
Transfer now?<br />
[% IF ( diffbranch ) %]
<!-- diffbranch -->
[% IF ( soundon ) %]
- <audio src="/intranet-tmpl/prog/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+ <audio src="[% interface %]/[% theme %]/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
<h3>Item consigned:</h3>
<table>
<!-- reserved -->
[% IF ( soundon ) %]
- <audio src="/intranet-tmpl/prog/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+ <audio src="[% interface %]/[% theme %]/sound/opening.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
<div id="hold-found2" class="dialog message">
</form>
</div>
[% END %]
-[% ELSE %]
+[% END %]
[% IF ( errmsgloop ) %]
<div class="dialog alert">
+ <h3>Check in message</h3>
[% FOREACH errmsgloo IN errmsgloop %]
[% IF ( errmsgloo.badbarcode ) %]
<p class="problem">No item with barcode: [% errmsgloo.msg %]</p>
[% END %]
[% IF ( errmsgloo.waslost ) %]
<p class="problem">Item was lost, now found.</p>
+ [% IF ( LostItemFeeRefunded ) %]
+ <p class="problem">A refund has been applied to the borrowing patron's account.</p>
+ [% ELSE %]
+ <p class="problem">Any lost item fees for this item will remain on the patron's account</p>
+ [% END %]
[% END %]
[% IF ( errmsgloo.withdrawn ) %]
[% IF BlockReturnOfWithdrawnItems %]
- <h3>Cannot Check In</h3>
+ <h5>Cannot check in</h5>
<p class="problem">Item is withdrawn. <strong>NOT CHECKED IN</strong></p>
[% ELSE %]
<p class="problem">Item is withdrawn.</p>
[% IF ( errmsgloo.debarred ) %]
<p class="problem"><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% errmsgloo.debarborrowernumber %]">[% errmsgloo.debarname %]([% errmsgloo.debarcardnumber %])</a> is now debarred until [% errmsgloo.debarred | $KohaDates %] </p>
[% END %]
+ [% IF ( errmsgloo.prevdebarred ) %]
+ <p class="problem"><b>Reminder: </b>Patron was earlier restricted until [% errmsgloo.prevdebarred | $KohaDates %]</p>
+ [% END %]
[% END %]
[% IF ( soundon ) %]
-<audio src="/intranet-tmpl/prog/sound/critical.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+<audio src="[% interface %]/[% theme %]/sound/critical.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
[% ELSE %]
[% IF ( soundon ) %]
-<audio src="/intranet-tmpl/prog/sound/beep.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
+<audio src="[% interface %]/[% theme %]/sound/beep.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
[% END %]
[% END %]
</div>
-[% END %]
+
+[% IF ( checkinmsg ) %]
+ [% IF ( checkinmsgtype == 'alert' ) %]
+ <div class="dialog alert">
+ [% ELSE %]
+ <div class="dialog message">
+ [% END %]
+ <p class="problem">[% checkinmsg | html_line_break %]</p>
+ </div>
+[% END%]
<div id="exemptfines" class="dialog message" style="display:none;">
<p>Fines for returned items are forgiven.</p>
</div>
<div id="dropboxmode" class="dialog message" style="display:none;">
- <p>Dropbox Mode. (Effective checkin date is [% dropboxdate %] ).</p>
+ <p>Book drop mode. (Effective checkin date is [% dropboxdate %] ).</p>
</div>
</div>
<div class="yui-g">
- <form method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" >
+ <form id="checkin-form" method="post" action="/cgi-bin/koha/circ/returns.pl" autocomplete="off" >
<div class="yui-u first">
<fieldset>
- <legend>Check In</legend>
+ <legend>Check in</legend>
<label for="barcode">Enter item barcode: </label>
[% IF ( exemptfine ) %]
<input name="barcode" id="barcode" size="14" class="focus alert"/>
<input name="barcode" id="barcode" size="14" class="focus"/>
[% END %]
<input type="submit" class="submit" value="Submit" />
+
+ [% IF Koha.Preference('SpecifyReturnDate') %]
+ <div class="date-select" id="return_date_override_fields">
+ <div class="hint">Specify return date [% INCLUDE 'date-format.inc' %]: </div>
+
+ <input type="text" size="13" id="return_date_override" name="return_date_override" value="[% return_date_override %]" />
+
+ <label for="return_date_override_remember"> Remember for next check in:</label>
+ [% IF ( return_date_override_remember ) %]
+ <input type="checkbox" id="return_date_override_remember" onclick="this.form.barcode.focus();" name="return_date_override_remember" checked="checked" />
+ [% ELSE %]
+ <input type="checkbox" id="return_date_override_remember" onclick="this.form.barcode.focus();" name="return_date_override_remember" />
+ [% END %]
+
+ <input type="button" class="action" id="cleardate" value="Clear" name="cleardate" onclick="this.checked = false; this.form.return_date_override.value = ''; this.form.return_date_override_remember.checked = false; this.form.barcode.focus(); return false;" />
+ </div>
+ [% END %]
[% FOREACH inputloo IN inputloop %]
<input type="hidden" name="ri-[% inputloo.counter %]" value="[% inputloo.barcode %]" />
<input type="hidden" name="dd-[% inputloo.counter %]" value="[% inputloo.duedate %]" />
<div class="yui-u">
<fieldset id="checkin_options">
<legend>Options</legend>
- [% IF ( overduecharges ) %]
+ [% IF ( CAN_user_updatecharges_writeoff && overduecharges ) %]
<p>
[% IF ( exemptfine ) %]
<input type="checkbox" id="exemptcheck" name="exemptfine" value="exemptfine" checked="checked" />
[% ELSE %]
<input type="checkbox" id="dropboxcheck" name="dropboxmode" value="dropboxmode" />
[% END %]
- <label for="dropboxcheck">Dropbox mode</label>
+ <label for="dropboxcheck">Book drop mode</label>
</p>
</fieldset>
</div>
</form>
</div>
-[% IF ( returned ) %]
-<div class="yui-g"> <table>
- <tr><th>Item information</th><th>Patron information</th></tr>
- <tr>
- <td>[% title |html %]</td>
- <td>
-
- <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% riborrowernumber %]">[% riborsurname %], [% ribortitle %] [% riborfirstname %]</a> ([% riborcnum %])
- [% IF ( flagset ) %]
- ([% FOREACH flagloo IN flagloop %]
- [% flagloo.flag %]
- [% IF ( flagloo.charges ) %] of [% flagloo.chargeamount %] [% END %]
- ,
- [% END %])[% END %]
- </td>
- </tr>
- </table>
-[% END %]
[% IF ( riloop ) %]
<h2>Checked-in items</h2>
<table>
- <tr><th>Due date</th><th>Title</th> <th>Author</th> <th>Barcode</th><th>Home branch</th><th>Holding branch</th><th>Shelving location</th><th>Call number</th><th>Type</th> <th>Patron</th><th>Note</th></tr>
+ <tr><th>Due date</th><th>Title</th> <th>Author</th> <th>Barcode</th><th>Home library</th><th>Holding library</th><th>Shelving location</th><th>Call number</th><th>Type</th> <th>Patron</th><th>Note</th></tr>
[% FOREACH riloo IN riloop %]
<tr>