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:
Jonathan Druart 2013-11-05 12:32:30 +01:00 committed by Tomas Cohen Arazi
parent c131b9821d
commit e887ae544d
5 changed files with 166 additions and 2 deletions

View file

@ -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
View 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;

View file

@ -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>

View file

@ -0,0 +1,81 @@
[% USE Branches %]
[% USE KohaDates %]
[% USE AuthorisedValues %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Circulation &rsaquo; 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> &rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> &rsaquo; 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 %]&amp;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' %]

View file

@ -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" );