Jonathan Druart
52bbc941ea
If an item is due today 23:59 and the filter is from yesterday to today, the overdue won't appear on the list. Test plan: Be sure you have an item due on DATE 23:59 Search for overdues from DATE-1 to DATE Without this patch, the item won't appear. With this patch, it will. Regression test: test the CSV download. Note: On the way, this patch remove the deps to C4::Dates (which was the original goal of the bug report). Issue reproduced, it's resolved with this patch. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
278 lines
12 KiB
Text
278 lines
12 KiB
Text
[% USE KohaDates %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Circulation › Items overdue as of [% todaysdate %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% INCLUDE 'calendar.inc' %]
|
|
[%- USE Branches -%]
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
function clone_parent(node) {
|
|
var parent = node.parentNode;
|
|
var clone = parent.cloneNode(true);
|
|
parent.parentNode.insertBefore(clone, parent.nextSibling);
|
|
$("a", clone).attr("style", "visibility: visible");
|
|
$("input", clone).attr("value", "");
|
|
|
|
|
|
var theid = $("span", clone).attr("id") || "";
|
|
var theid = $("span", clone).attr("id") || "";
|
|
var parts = theid.match(/^pattrodue-getready-(.*)$/);
|
|
if (parts && parts.length > 1)
|
|
{
|
|
var appendid = "-" + Math.floor(Math.random()*1000+1);
|
|
$("span", clone).attr("id",theid+appendid);
|
|
|
|
theid = $("input", clone).attr("id");
|
|
$("input", clone).attr("id",theid+appendid);
|
|
|
|
theid = $("div[id]", clone).attr("id");
|
|
$("div[id]", clone).attr("id",theid+appendid);
|
|
|
|
var attrcode = $("script", clone).attr("x-code");
|
|
var newsuffix = parts[1] + appendid;
|
|
create_auto_completion_responder(newsuffix,attrcode);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function delete_parent(node) {
|
|
var parent = node.parentNode;
|
|
parent.parentNode.removeChild(parent);
|
|
}
|
|
|
|
function create_auto_completion_responder(uniqueid,attrcode) {
|
|
$("#pattrodue-getready-" + uniqueid).ready(function(){
|
|
$( "#pattrodue-input-" + uniqueid ).autocomplete({
|
|
source: "/cgi-bin/koha/circ/ypattrodue-attr-search-authvalue.pl/"+attrcode,
|
|
select: function( event, ui ) {
|
|
$( "#pattrodue-input-"+uniqueid ).val( ui.item.description );
|
|
return false;
|
|
}
|
|
})
|
|
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
|
|
return $( "<li></li>" )
|
|
.data( "ui-autocomplete-item", item )
|
|
.append( "<a>" + item.description + " (" + item.authorised_value + ")</a>" )
|
|
.appendTo( ul )
|
|
.css("font-size","90%").css("width","13em");
|
|
};
|
|
});
|
|
}
|
|
//]]>
|
|
</script>
|
|
<style type="text/css">
|
|
.sql {display:none;}
|
|
</style>
|
|
</head>
|
|
<body id="circ_overdue" class="circ">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'circ-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › Overdues as of [% todaysdate %]</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
[% IF ( noreport ) %]
|
|
|
|
<h2>Overdue report</h2>
|
|
|
|
<p>Please choose one or more filters to proceed.</p>
|
|
|
|
[% ELSE %]
|
|
|
|
<h2>[% nnoverdue %] [% IF ( noverdue_is_plural ) %]Items[% ELSE %]Item[% END %]
|
|
overdue as of [% todaysdate %][% IF ( isfiltered ) %] <span style="font-size:70%;">(Filtered. <a href="/cgi-bin/koha/circ/overdue.pl">Reset filter</a>)</span>[% END %]</h2>
|
|
|
|
<p>
|
|
[% IF ( isfiltered ) %]
|
|
<a href="overdue.pl?op=csv&[% csv_param_string |html %]">Download file of displayed overdues</a>
|
|
[% ELSE %]
|
|
<a href="overdue.pl?op=csv">Download file of all overdues</a>
|
|
[% END %]
|
|
</p>
|
|
<div class="sql"><pre>[% sql |html %]</pre></div>
|
|
<div class="searchresults">
|
|
<table id="overduest">
|
|
<thead><tr>
|
|
<th>Due date</th>
|
|
<th>Patron</th>
|
|
<th>Library</th>
|
|
<th>Title</th>
|
|
<th>Barcode</th>
|
|
<th>Call number</th>
|
|
<th>Price</th>
|
|
</tr></thead>
|
|
|
|
[%- BLOCK subject -%]Overdue:[%- END -%]
|
|
|
|
<tbody>[% FOREACH overdueloo IN overdueloop %]
|
|
<tr>
|
|
<td>[% overdueloo.duedate %]</td>
|
|
<td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% overdueloo.borrowernumber %]">[% overdueloo.surname %][% IF (overdueloo.firstname) %], [% overdueloo.firstname %][% END %] ([% overdueloo.cardnumber %])</a>
|
|
[% IF ( overdueloo.email ) %][<a href="mailto:[% overdueloo.email %]?subject=[% INCLUDE subject %] [% overdueloo.title |html %]">email</a>][% END %]
|
|
[% IF ( overdueloo.phone ) %]([% overdueloo.phone %])[% ELSIF ( overdueloo.mobile ) %]([% overdueloo.mobile %])[% ELSIF ( overdueloo.phonepro ) %]([% overdueloo.phonepro %])[% END %]</td>
|
|
<td>[% IF overdueloo.branchcode %][% Branches.GetName( overdueloo.branchcode ) %][% END %]</td>
|
|
<td>[% INCLUDE 'biblio-default-view.inc' biblionumber = overdueloo.biblionumber %][% overdueloo.title |html %] [% overdueloo.subtitle %]</a> [% IF ( overdueloo.author ) %], by [% overdueloo.author %][% END %][% IF ( overdueloo.enumchron ) %], [% overdueloo.enumchron %][% END %]
|
|
</td>
|
|
<td><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% overdueloo.biblionumber %]&itemnumber=[% overdueloo.itemnum %]#item[% overdueloo.itemnum %]">[% overdueloo.barcode %]</a></td>
|
|
<td>[% overdueloo.itemcallnumber %]</td>
|
|
<td>[% overdueloo.replacementprice %]</td>
|
|
</tr>
|
|
[% END %]</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
[% END %] <!-- noreport -->
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<form method="post" action="/cgi-bin/koha/circ/overdue.pl">
|
|
<fieldset class="brief">
|
|
<h4>Filter on:</h4>
|
|
<fieldset><legend>Date due:</legend>
|
|
<ol>
|
|
<li><label for="from">From:</label>
|
|
<input type="text" id="from" name="dateduefrom" size="10" value="[% dateduefrom | $KohaDates %]" class="datepickerfrom" />
|
|
</li>
|
|
<li>
|
|
<label for="to">To:</label>
|
|
<input type="text" id="to" name="datedueto" size="10" value="[% datedueto | $KohaDates %]" class="datepickerto" />
|
|
</li>
|
|
</ol></fieldset>
|
|
<ol>
|
|
<li><label>Name or cardnumber:</label><input type="text" name="borname" value="[% borname |html %]" /></li>
|
|
<li><label>Patron category:</label><select name="borcat" id="borcat"><option value="">Any</option>
|
|
[% FOREACH borcatloo IN borcatloop %]
|
|
[% IF ( borcatloo.selected ) %]<option value="[% borcatloo.value |html %]" selected="selected">[% borcatloo.catname %]</option>[% ELSE %]<option value="[% borcatloo.value |html %]">[% borcatloo.catname %]</option>[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li><label>Patron flags:</label>
|
|
<select name="borflag" size="1" id="borflag">
|
|
<option value="">None</option>
|
|
[% IF ( borflag_gonenoaddress ) %]<option value="gonenoaddress" selected="selected">Address in question</option>
|
|
[% ELSE %]<option value="gonenoaddress">Address in question</option>[% END %]
|
|
[% IF ( borflag_debarred ) %]<option value="debarred" selected="selected">Restricted</option>
|
|
[% ELSE %]<option value="debarred">Restricted</option>[% END %]
|
|
[% IF ( borflag_lost ) %]<option value="lost" selected="selected">Lost card</option>
|
|
[% ELSE %]<option value="lost">Lost card</option>[% END %]
|
|
</select>
|
|
</li>
|
|
[% FOREACH patron_attr_filter_loo IN patron_attr_filter_loop %]
|
|
<!-- domid cgivalue ismany isclone ordinal code description repeatable authorised_value_category -->
|
|
<li>
|
|
<label>[% patron_attr_filter_loo.description %]:</label>
|
|
[% IF ( patron_attr_filter_loo.authorised_value_category ) %]
|
|
<script type="text/javascript" x-code="[% patron_attr_filter_loo.code |html %]">create_auto_completion_responder([% patron_attr_filter_loo.domid %],"[% patron_attr_filter_loo.code |html %]");</script>
|
|
<span id="pattrodue-getready-[% patron_attr_filter_loo.domid %]">
|
|
<div class="pattrodue-autocomplete">
|
|
<input autocomplete="off" id="pattrodue-input-[% patron_attr_filter_loo.domid %]" name="patron_attr_filter_[% patron_attr_filter_loo.code |html %]" value="[% patron_attr_filter_loo.cgivalue |html %]" class="pattrodue-input" type="text" />
|
|
</div>
|
|
</span>
|
|
[% ELSE %]
|
|
<input type="text" name="patron_attr_filter_[% patron_attr_filter_loo.code |html %]" value="[% patron_attr_filter_loo.cgivalue |html %]"/>
|
|
[% END %]
|
|
[% IF ( patron_attr_filter_loo.repeatable ) %]
|
|
<a href="#" onclick="clone_parent(this); return false;">Add</a>
|
|
[% IF ( patron_attr_filter_loo.isclone ) %]
|
|
<a href="#" onclick="delete_parent(this); return false;" style="visibility: visible">Delete</a>
|
|
[% ELSIF ( patron_attr_filter_loo.ismany ) %]
|
|
<a href="#" onclick="delete_parent(this); return false;" style="visibility: visible">Delete</a>
|
|
[% ELSE %]
|
|
<a href="#" onclick="delete_parent(this); return false;" style="visibility: hidden">Delete</a>
|
|
[% END %]
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
|
|
<li><label>Item type:</label><select name="itemtype" id="itemtype"><option value="">Any</option>
|
|
[% FOREACH itemtypeloo IN itemtypeloop %][% IF ( itemtypeloo.selected ) %]
|
|
<option value="[% itemtypeloo.value |html %]" selected="selected">[% itemtypeloo.itemtypename %]</option>[% ELSE %]
|
|
<option value="[% itemtypeloo.value |html %]">[% itemtypeloo.itemtypename %]</option>[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li>
|
|
<label>Item home library:</label>
|
|
<select name="homebranch" id="homebranch">
|
|
<option value="">Any</option>
|
|
[% FOREACH homebranchloo IN homebranchloop %][% IF ( homebranchloo.selected ) %]
|
|
<option value="[% homebranchloo.value |html %]" selected="selected">[% homebranchloo.branchname %]</option>[% ELSE %]
|
|
<option value="[% homebranchloo.value |html %]">[% homebranchloo.branchname %]</option>[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li>
|
|
<label>Item holding library:</label>
|
|
<select name="holdingbranch" id="holdingbranch">
|
|
<option value="">Any</option>
|
|
[% FOREACH holdingbranchloo IN holdingbranchloop %][% IF ( holdingbranchloo.selected ) %]
|
|
<option value="[% holdingbranchloo.value |html %]" selected="selected">[% holdingbranchloo.branchname %]</option>[% ELSE %]
|
|
<option value="[% holdingbranchloo.value |html %]">[% holdingbranchloo.branchname %]</option>[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li>
|
|
<label>Library of the patron:</label><select name="branch" id="branch">
|
|
<option value="">Any</option>
|
|
[% FOREACH branchloo IN branchloop %]
|
|
[% IF ( branchloo.selected ) %]
|
|
<option value="[% branchloo.value |html %]" selected="selected">[% branchloo.branchname %]</option>[% ELSE %]
|
|
<option value="[% branchloo.value |html %]">[% branchloo.branchname %]</option>[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li><label for="order">Sort by:</label> <select name="order" id="order">
|
|
[% FOREACH ORDER_LOO IN ORDER_LOOP %]
|
|
[% IF ( ORDER_LOO.selected ) %]
|
|
<option value="[% ORDER_LOO.ordervalue %]" selected="selected">
|
|
[% ELSE %]
|
|
<option value="[% ORDER_LOO.ordervalue %]">
|
|
[% END %]
|
|
[% IF ( ORDER_LOO.order_date_due ) %]Due date
|
|
[% ELSIF ( ORDER_LOO.order_borrower ) %]Patron
|
|
[% ELSIF ( ORDER_LOO.order_barcode ) %]Barcode
|
|
[% ELSIF ( ORDER_LOO.order_title ) %]Title
|
|
[% ELSIF ( ORDER_LOO.order_date_due_desc ) %]Due date desc
|
|
[% ELSIF ( ORDER_LOO.order_borrower_desc ) %]Patron desc
|
|
[% ELSIF ( ORDER_LOO.order_barcode_desc ) %]Barcode desc
|
|
[% ELSIF ( ORDER_LOO.order_title_desc ) %]Title desc
|
|
[% ELSE %][% ORDER_LOO.label %]
|
|
[% IF ( ORDER_LOO.desc ) %]desc[% END %]
|
|
[% END %]
|
|
</option>
|
|
[% END %]
|
|
[% FOREACH patron_attr_order_loo IN patron_attr_order_loop %]
|
|
[% IF ( patron_attr_order_loo.selected ) %]<option value="[% patron_attr_order_loo.value |html %]" selected="selected">[% patron_attr_order_loo.label %]</option>
|
|
[% ELSE %]<option value="[% patron_attr_order_loo.value |html %]">[% patron_attr_order_loo.label %]</option>[% END %]
|
|
[% END %]
|
|
</select></li>
|
|
|
|
<li class="radio"><label for="showall">Show any items currently checked out:</label>
|
|
[% IF ( showall ) %]
|
|
<input type="checkbox" id="showall" name="showall" value="show" checked="checked" />
|
|
[% ELSE %]
|
|
<input type="checkbox" id="showall" name="showall" value="show" />
|
|
[% END %]
|
|
</li>
|
|
</ol>
|
|
<fieldset class="action">
|
|
<input type="submit" value="Apply filter" class="submit" />
|
|
<input type="hidden" name="op" value="apply filter" />
|
|
</fieldset>
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|