Koha/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt
Jonathan Druart 7aedcf643e Bug 16082: Display a friendly "patron does not exist" message if that's the case - circulation.pl
The major part of pages you can access from a patron detail page (menu)
does not take into consideration the 'patron does not exist' case.
If the borrowernumber is linked to a deleted patron, a friendly message
should be displayed instead of an empty patron detail page.

Test plan:
Go on circ/circulation.pl?borrowernumber=424242
and   circ/circulation.pl?borrowernumber=424242&batch=1
Notice the difference before and after this patch

Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
2016-03-21 16:58:17 +00:00

296 lines
14 KiB
Text

[% USE Branches %]
[% USE KohaDates %]
[% IF ( export_remove_fields OR export_with_csv_profile ) %]
[% SET exports_enabled = 1 %]
[% END %]
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
[% SET destination = "circ" %]
<title>Koha &rsaquo; Circulation
[% IF borrowernumber and borrower %]
&rsaquo; Batch check out &rsaquo; Issuing items to [% INCLUDE 'patron-title.inc' invert_name = 1 %]
[% END %]
</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'calendar.inc' %]
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
if($('#barcodelist').length) {
$('#barcodelist').focus();
} else if ($('#checkoutrenew').length) {
$('#checkoutrenew').focus();
}
$("#checkout_infos").dataTable($.extend(true, {}, dataTablesDefaults, {
"sDom": 't',
"aaSorting": [],
"aoColumnDefs": [
{ "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] }
],
"bPaginate": false
}));
});
//]]>
</script>
</head>
<body id="circ_circulation_batch_checkouts" class="circ">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'circ-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo;
[% IF borrower and borrowernumber %]
<a href="/cgi-bin/koha/circ/circulation.pl">Batch check out</a> &rsaquo; [% INCLUDE 'patron-title.inc' %]
[% ELSE %]
Batch check out
[% END %]
</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-g">
[% IF borrowernumber and borrower %]
[% INCLUDE 'members-toolbar.inc' %]
[% END %]
[% IF borrower and not batch_allowed %]
<div class="dialog alert">You are not allowed to use batch checkout for this patron</div>
[% ELSIF borrower and noissues and not checkout_infos %]
<div class="dialog alert">
Cannot check out!
[% IF charges_is_blocker %]
Checkouts are <span class="circ-hlt">BLOCKED</span> because fine balance is <span class="circ-hlt">OVER THE LIMIT</span>.
[% END %]
</div>
[% ELSIF borrower and not checkout_infos %]
<form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/circ/circulation.pl">
<fieldset id="circ_circulation_issue">
<label for="barcode">Checking out to [% INCLUDE 'patron-title.inc' %]</label>
<fieldset class="rows">
<legend>Use a file</legend>
<ol>
<li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
</ol>
</fieldset>
<fieldset class="rows">
<legend>Or list barcodes one by one</legend>
<ol>
<li>
<label for="barcodelist">Barcode list (one barcode per line): </label>
<textarea rows="10" cols="30" id="barcodelist" name="barcodelist"></textarea>
</li>
</ol>
</fieldset>
<input type="hidden" name="op" value="show" />
<fieldset class="action">
<input type="hidden" name="borrowernumber" id="borrowernumber" value="[% borrowernumber %]" />
<input type="hidden" name="branch" value="[% branch %]" />
<input type="hidden" name="batch" value="1" />
<input type="submit" value="Check out" class="button" />
</fieldset>
</fieldset>
</form>
[% ELSIF borrower %]
[% IF confirmation_needed && CAN_user_circulate_force_checkout %]
<h3>Batch checkout confirmation [% IF borrowernumber %] for [% INCLUDE 'patron-title.inc' invert_name = 1 %] [% END %]</h3>
<form method="post" action="/cgi-bin/koha/circ/circulation.pl" id="mainform" name="mainform" autocomplete="off">
[% ELSE %]
<h3>Batch checkout information [% IF borrowernumber %] for [% INCLUDE 'patron-title.inc' invert_name = 1 %] [% END %]</h3>
[% END %]
<table id="checkout_infos">
<thead>
<tr>
[% IF confirmation_needed && CAN_user_circulate_force_checkout %]
<th class="NoSort"></th>
[% END %]
<th>Barcode</th>
<th class="anti-the">Title</th>
<th>Information</th>
</tr>
</thead>
<tbody>
[% FOR checkout_info IN checkout_infos %]
<tr>
[% IF confirmation_needed && CAN_user_circulate_force_checkout %]
<td>
[% IF checkout_info.NEEDSCONFIRMATION %]
<input type="checkbox" name="barcodes" value="[% checkout_info.barcode %]" checked="checked" />
[% END %]
</td>
[% END %]
<td>[% checkout_info.barcode %]</td>
<td>
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% checkout_info.item.biblionumber %]&amp;type=intra"><strong>[% checkout_info.item.title |html %][% FOREACH subtitl IN checkout_info.item.subtitle %] [% subtitl.subfield %][% END %]</strong></a>[% IF checkout_info.item.author %], by [% checkout_info.item.author %][% END %][% IF ( checkout_info.itme.itemnotes ) %]- <span class="circ-hlt">[% checkout_info.item.itemnotes %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% checkout_info.item.biblionumber %]&amp;itemnumber=[% checkout_info.item.itemnumber %]#item[% checkout_info.item.itemnumber %]">[% checkout_info.item.barcode %]</a>
</td>
<td>
[% IF checkout_info.NEEDSCONFIRMATION %]
<ul class="fa-ul warn">
[% IF checkout_info.AGE_RESTRICTION %]
<li><i class="fa fa-li fa-warning"></i>Age restriction [% checkout_info.AGE_RESTRICTION %].</li>
[% END %]
[% IF checkout_info.RENEW_ISSUE %]
<li><i class="fa fa-li fa-warning"></i>This item is currently checked out to this patron. Renew?</li>
[% END %]
[% IF checkout_info.RESERVE_WAITING %]
<li><i class="fa fa-li fa-warning"></i>This item is waiting for another patron.</li>
[% END %]
[% IF checkout_info.RESERVED %]
<li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron.</li>
[% END %]
[% IF checkout_info.ISSUED_TO_ANOTHER %]
<li><i class="fa fa-li fa-warning"></i>This item is checked out to another patron.
[% IF CAN_user_circulate_force_checkout %]
Check in and check out?
[% END %]</li>
[% END %]
[% IF checkout_info.TOO_MANY %]
<li><i class="fa fa-li fa-warning"></i>Too many checked out.</li>
[% END %]
[% IF checkout_info.BORRNOTSAMEBRANCH %]
<li><i class="fa fa-li fa-warning"></i>This patron is from a different library ([% checkout_info.BORRNOTSAMEBRANCH %]).</li>
[% END %]
[% IF checkout_ino.PATRON_CANT %]
<li><i class="fa fa-li fa-warning"></i>This patron can't check out this item per library circulation policy.</li>
[% END %]
[% IF checkout_info.NOT_FOR_LOAN_FORCING %]
[% IF checkout_info.itemtype_notforloan %]
<li><i class="fa fa-li fa-warning"></i>Item type is normally not for loan.</li>
[% ELSIF checkout_info.item_notforloan %]
[% item_notforloan_lib = AuthorisedValues.GetByCode( authvalcode_notforloan, checkout_info.item_notforloan, 0 ) %]
<li><i class="fa fa-li fa-warning"></i>Item is normally not for loan [% IF item_notforloan_lib %]([% item_notforloan_lib %])[% END %].</li>
[% END %]
[% END %]
[% IF checkout_info.USERBLOCKEDOVERDUE %]
<li><i class="fa fa-li fa-warning"></i>Patron has [% checkout_info.USERBLOCKEDOVERDUE %] overdue item(s).</li>
[% END %]
[% IF checkout_info.ITEM_LOST %]
<li><i class="fa fa-li fa-warning"></i>This item has been lost with a status of "[% checkout_info.ITEM_LOST %]."</li>
[% END %]
[% IF checkout_info.HIGHHOLDS %]
<li><i class="fa fa-li fa-warning"></i>High demand item. Loan period shortened to [% checkout_info.HIGHHOLDS.duration %] days (due [% checkout_info.HIGHHOLDS.returndate %]).</li>
[% END %]
[% IF checkout_info.HIGHHOLDS %] <!-- FIXME -->
<script type="text/javascript">
$(document).ready(function() {
$("input[name=duedatespec]:hidden").val('[% checkout_info.HIGHHOLDS.returndate %]');
});
</script>
[% END %]
[% IF NOT checkout_info.IMPOSSIBLE && ( CAN_user_circulate_force_checkout or checkout_info.HIGHHOLDS ) %]
[% IF checkout_info.RESERVED || checkout_info.RESERVE_WAITING %] <!-- arbitrary choice, revert the reserve is not possible-->
<li><i class="fa fa-li fa-warning"></i>This item is on hold for another patron. The hold will be overridden, but not cancelled.</li>
[% END %]
[% END %]
</ul>
[% END %]
[% IF checkout_info.alert.ITEM_LOST || checkout_info.alert.OTHER_CHARGES %]
<ul class="info">
[% IF checkout_info.alert.ITEM_LOST %]
<li>This item has been lost with a status of "[% checkout_info.alert.ITEM_LOST %]."</li>
[% END %]
[% IF checkout_info.alert.OTHER_CHARGES %]
<li>The patron has unpaid charges for holds, rentals etc of [% checkout_info.alert.OTHER_CHARGES %].</li>
[% END %]
</ul>
[% END %]
[% IF checkout_info.IMPOSSIBLE %]
<ul class="fa-ul error">
[% IF checkout_info.STATS %]
<li><i class="fa fa-li fa-exclamation"></i>Local use recorded.</li>
[% END %]
[% IF checkout_info.NOT_FOR_LOAN %]
[% IF checkout_info.itemtype_notforloan %]
<li><i class="fa fa-li fa-exclamation"></i>Item type not for loan.</li>
[% ELSIF checkout_info.item_notforloan %]
[% item_notforloan_lib = AuthorisedValues.GetByCode( checkout_info.authvalcode_notforloan, checkout_info.item_notforloan, 0 ) %]
<li><i class="fa fa-li fa-exclamation"></i>Item not for loan [% IF checkout_info.item_notforloan_lib %]([% checkout_info.item_notforloan_lib %])[% END %].</li>
[% END %]
[% END %]
[% IF checkout_info.WTHDRAWN %]
<li><i class="fa fa-li fa-exclamation"></i>Item has been withdrawn.</li>
[% END %]
[% IF checkout_info.RESTRICTED %]
<li><i class="fa fa-li fa-exclamation"></i>Item is restricted.</li>
[% END %]
[% IF checkout_info.GNA %]
<li><i class="fa fa-li fa-exclamation"></i>Patron's address is in doubt.</li>
[% END %]
[% IF checkout_info.CARD_LOST %]
<li><i class="fa fa-li fa-exclamation"></i>Patron's card is lost.</li>
[% END %]
[% IF checkout_info.DEBARRED %]
<li><i class="fa fa-li fa-exclamation"></i>Patron is restricted.</li>
[% END %]
[% IF checkout_info.NO_MORE_RENEWALS %]
<li><i class="fa fa-li fa-exclamation"></i>No more renewals possible.</li>
[% END %]
[% IF checkout_info.EXPIRED %]
<li><i class="fa fa-li fa-exclamation"></i>Patron's card is expired.</li>
[% END %]
[% IF checkout_info.ITEMNOTSAMEBRANCH %]
<li><i class="fa fa-li fa-exclamation"></i>This item belongs to [% Branches.GetName( checkout_info.itemhomebranch ) %] and cannot be checked out from this location.</li>
[% END %]
[% IF checkout_info.USERBLOCKEDREMAINING %]
<li><i class="fa fa-li fa-exclamation"></i>Patron has had overdue items and is blocked for [% checkout_info.USERBLOCKEDREMAINING %] day(s).</li>
[% END %]
[% IF checkout_info.USERBLOCKEDOVERDUE %]
<li><i class="fa fa-li fa-exclamation"></i>Checkouts are BLOCKED because patron has overdue items.</li>
[% END %]
[% IF checkout_info.TOO_MANY %]
<li><i class="fa fa-li fa-exclamation"></i>Too many checked out.</li>
[% END %]
[% IF checkout_info.UNKNOWN_BARCODE %]
<li><i class="fa fa-li fa-exclamation"></i>The barcode was not found [% checkout_info.barcode |html %].</li>
[% END %]
[% IF checkout_info.DEBT %]
<li><i class="fa fa-li fa-exclamation"></i>The patron has a debt of [% checkout_info.DEBT %].</li> <!-- Need debt_confirmed -->
[% END %]
</p>
[% END %]
</td>
</tr>
[% END %]
</tbody>
</table>
[% IF confirmation_needed && CAN_user_circulate_force_checkout %]
<fieldset>
<legend>Please confirm checkout</legend>
<input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
<input type="hidden" name="issueconfirmed" value="1" />
<input type="hidden" name="debt_confirmed" value="1" />
<input type="hidden" name="branch" value="[% branch %]" />
<input type="hidden" name="batch" value="1" />
<input type="submit" id="checkoutrenew" class="approve" value="Checkout or renew" />
</fieldset>
</form>
[% END %]
[% ELSE %]
<div class="dialog message">This patron does not exist. <a href="/cgi-bin/koha/members/members-home.pl">Find another patron?</a></div>
[% END %]
</div>
</div>
</div>
[% IF borrower %]
<div class="yui-b">
[% INCLUDE 'circ-menu.inc' %]
</div>
[% END %]
</div>
[% INCLUDE 'intranet-bottom.inc' %]