Bug 11201: Add a in-house use list pages
The circulation page has a new entry: a link to a list of the pending in-house use. Bug 10860 introduces a new way for managing in-house uses. This patch adds a new page (from the circulation home page) to list all pending in-house uses. Test plan: Go on the circulation home page and click on the in-house use link. Verify all your in-house uses are listed and information are consistent. Bug 11201: Display lib instead of AV code This patch assumes that items.location is linked the the LOC authorised values. Signed-off-by: Nicole <nicole@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
c131b9821d
commit
e887ae544d
5 changed files with 166 additions and 2 deletions
|
@ -73,6 +73,7 @@ BEGIN {
|
|||
&barcodedecode
|
||||
&LostItem
|
||||
&ReturnLostItem
|
||||
&GetPendingOnSiteCheckouts
|
||||
);
|
||||
|
||||
# subs to deal with issuing a book
|
||||
|
@ -3910,6 +3911,36 @@ sub GetAgeRestriction {
|
|||
|
||||
1;
|
||||
|
||||
=head2 GetPendingOnSiteCheckouts
|
||||
|
||||
=cut
|
||||
|
||||
sub GetPendingOnSiteCheckouts {
|
||||
my $dbh = C4::Context->dbh;
|
||||
return $dbh->selectall_arrayref(q|
|
||||
SELECT
|
||||
items.barcode,
|
||||
items.biblionumber,
|
||||
items.itemnumber,
|
||||
items.itemnotes,
|
||||
items.itemcallnumber,
|
||||
items.location,
|
||||
issues.date_due,
|
||||
issues.branchcode,
|
||||
biblio.author,
|
||||
biblio.title,
|
||||
borrowers.firstname,
|
||||
borrowers.surname,
|
||||
borrowers.cardnumber,
|
||||
borrowers.borrowernumber
|
||||
FROM items
|
||||
LEFT JOIN issues ON items.itemnumber = issues.itemnumber
|
||||
LEFT JOIN biblio ON items.biblionumber = biblio.biblionumber
|
||||
LEFT JOIN borrowers ON issues.borrowernumber = borrowers.borrowernumber
|
||||
WHERE issues.onsite_checkout = 1
|
||||
|, { Slice => {} } );
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
=head1 AUTHOR
|
||||
|
|
43
circ/on-site_checkouts.pl
Executable file
43
circ/on-site_checkouts.pl
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/perl
|
||||
# This file is part of Koha.
|
||||
#
|
||||
# Copyright (C) 2013 BibLibre
|
||||
#
|
||||
# Koha is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Koha is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use C4::Auth;
|
||||
use C4::Circulation qw( GetPendingOnSiteCheckouts );
|
||||
use C4::Output;
|
||||
|
||||
my $cgi = new CGI;
|
||||
|
||||
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
||||
{
|
||||
template_name => "circ/on-site_checkouts.tt",
|
||||
query => $cgi,
|
||||
type => "intranet",
|
||||
authnotrequired => 0,
|
||||
flagsrequired => {circulate => "circulate_remaining_permissions"},
|
||||
}
|
||||
);
|
||||
|
||||
my $pending_onsite_checkouts = C4::Circulation::GetPendingOnSiteCheckouts();
|
||||
|
||||
$template->param(
|
||||
pending_onsite_checkouts => $pending_onsite_checkouts,
|
||||
);
|
||||
|
||||
output_html_with_http_headers $cgi, $cookie, $template->output;
|
|
@ -46,6 +46,7 @@
|
|||
systems with large numbers of overdue items.</li>[% END %]
|
||||
<li> <a href="/cgi-bin/koha/circ/branchoverdues.pl">Overdues with fines</a> - Limited to your library. See report help for other details.</li>
|
||||
<!-- <li> <a href="/cgi-bin/koha/circ/stats.pl?time=yesterday">Daily reconciliation</a></li> -->
|
||||
<li><a href="/cgi-bin/koha/circ/on-site_checkouts.pl">On-site checkout list</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
[% USE Branches %]
|
||||
[% USE KohaDates %]
|
||||
[% USE AuthorisedValues %]
|
||||
[% INCLUDE 'doc-head-open.inc' %]
|
||||
<title>Koha › Circulation › On-site checkouts</title>
|
||||
[% INCLUDE 'doc-head-close.inc' %]
|
||||
<link rel="stylesheet" href="[% themelang %]/css/datatables.css" />
|
||||
[% INCLUDE 'datatables.inc' %]
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
$(document).ready(function(){
|
||||
if ( $("#pending_onsite_checkout").length ) {
|
||||
$("#pending_onsite_checkout").dataTable($.extend(true, {}, dataTablesDefaults, {
|
||||
"aLengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],
|
||||
"aoColumns": [
|
||||
{ "sType": "title-string" },
|
||||
{ "sType": "html" },
|
||||
{ "sType": "html" },
|
||||
null,
|
||||
{ "sType": "html" },
|
||||
null,
|
||||
null,
|
||||
],
|
||||
'bAutoWidth': false,
|
||||
"sPaginationType": "four_button"
|
||||
}));
|
||||
}
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body id="circ_stats" 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> › On-site checkouts</div>
|
||||
|
||||
<div id="doc3" class="yui-t2">
|
||||
<div id="bd">
|
||||
<div id="yui-main">
|
||||
<div class="yui-b">
|
||||
<h4>Pending on-site checkout list</h4>
|
||||
[% IF pending_onsite_checkouts %]
|
||||
<table id="pending_onsite_checkout">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th><th>Patron</th><th>Title</th><th>Callnumber</th><th>Barcode</th><th>Library</th><th>Location</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% FOREACH item IN pending_onsite_checkouts %]
|
||||
<tr>
|
||||
<td><span title="[% item.date_due %]">[% item.date_due | $KohaDates %]</span></td>
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% item.borrowernumber %]">[%item.firstname %] [% item.surname %]</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% item.biblionumber %]"><strong>[% item.title |html %]</strong></a>[% IF ( item.author ) %], by [% item.author %][% END %][% IF ( item.itemnotes ) %]- <span class="circ-hlt">[% item.itemnotes %]</span>[% END %]
|
||||
</td>
|
||||
<td>[% item.itemcallnumber %]</td>
|
||||
<td>
|
||||
<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% item.biblionumber %]&itemnumber=[% item.itemnumber %]#item[% item.itemnumber %]">[% item.barcode %]</a>
|
||||
</td>
|
||||
<td>[% Branches.GetName(item.branchcode) %]</td>
|
||||
<td>[% AuthorisedValues.GetByCode( 'LOC', item.location )%]</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
</tbody>
|
||||
</table>
|
||||
[% ELSE %]
|
||||
<h3>No pending on-site checkout.</h3>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="yui-b">
|
||||
[% INCLUDE 'circ-menu.inc' %]
|
||||
</div>
|
||||
</div>
|
||||
[% INCLUDE 'intranet-bottom.inc' %]
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More;
|
||||
use Test::More tests => 10;
|
||||
use Test::MockModule;
|
||||
use C4::Biblio;
|
||||
use C4::Items;
|
||||
|
@ -16,6 +16,8 @@ my $dbh = C4::Context->dbh;
|
|||
$dbh->{AutoCommit} = 0;
|
||||
$dbh->{RaiseError} = 1;
|
||||
|
||||
$dbh->do(q|DELETE FROM issues|);
|
||||
|
||||
my $branchcode;
|
||||
my $branch_created;
|
||||
my @branches = keys %{ GetBranches() };
|
||||
|
@ -82,4 +84,10 @@ is(scalar @$issues, 1, "The other is an item from biblio $biblionumber2");
|
|||
$issues = C4::Circulation::GetIssues({itemnumber => $itemnumber2});
|
||||
is(scalar @$issues, 0, "No one has issued the second item of biblio $biblionumber2");
|
||||
|
||||
done_testing;
|
||||
my $onsite_checkouts = GetPendingOnSiteCheckouts;
|
||||
is( scalar @$onsite_checkouts, 0, "No pending on-site checkouts" );
|
||||
|
||||
my $itemnumber4 = AddItem({ barcode => '0104', %item_branch_infos }, $biblionumber1);
|
||||
AddIssue( $borrower, '0104', undef, undef, undef, undef, { onsite_checkout => 1 } );
|
||||
$onsite_checkouts = GetPendingOnSiteCheckouts;
|
||||
is( scalar @$onsite_checkouts, 1, "There is 1 pending on-site checkout" );
|
||||
|
|
Loading…
Reference in a new issue