&barcodedecode
&LostItem
&ReturnLostItem
+ &GetPendingOnSiteCheckouts
);
# subs to deal with issuing a book
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
--- /dev/null
+#!/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;
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>
--- /dev/null
+[% 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' %]
use Modern::Perl;
-use Test::More;
+use Test::More tests => 10;
use Test::MockModule;
use C4::Biblio;
use C4::Items;
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
+$dbh->do(q|DELETE FROM issues|);
+
my $branchcode;
my $branch_created;
my @branches = keys %{ GetBranches() };
$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" );