@@ -, +, @@
---
C4/Items.pm | 31 +++++++----
.../prog/en/modules/tools/inventory.tt | 5 ++
tools/inventory.pl | 65 ++++++++++++----------
3 files changed, 60 insertions(+), 41 deletions(-)
--- a/C4/Items.pm
+++ a/C4/Items.pm
@@ -1037,6 +1037,7 @@ sub GetLostItems {
size => $size,
statushash => $statushash,
interface => $interface,
+ ignore_holds_waiting => $ignore_holds_waiting,
} );
Retrieve a list of title/authors/barcode/callnumber, for biblio inventory.
@@ -1056,18 +1057,19 @@ $iTotalRecords is the number of rows that would have been returned without the $
sub GetItemsForInventory {
my ( $parameters ) = @_;
- my $minlocation = $parameters->{'minlocation'} // '';
- my $maxlocation = $parameters->{'maxlocation'} // '';
- my $location = $parameters->{'location'} // '';
- my $itemtype = $parameters->{'itemtype'} // '';
- my $ignoreissued = $parameters->{'ignoreissued'} // '';
- my $datelastseen = $parameters->{'datelastseen'} // '';
- my $branchcode = $parameters->{'branchcode'} // '';
- my $branch = $parameters->{'branch'} // '';
- my $offset = $parameters->{'offset'} // '';
- my $size = $parameters->{'size'} // '';
- my $statushash = $parameters->{'statushash'} // '';
- my $interface = $parameters->{'interface'} // '';
+ my $minlocation = $parameters->{minlocation} // '';
+ my $maxlocation = $parameters->{maxlocation} // '';
+ my $location = $parameters->{location} // '';
+ my $itemtype = $parameters->{itemtype} // '';
+ my $ignoreissued = $parameters->{ignoreissued} // '';
+ my $datelastseen = $parameters->{datelastseen} // '';
+ my $branchcode = $parameters->{branchcode} // '';
+ my $branch = $parameters->{branch} // '';
+ my $offset = $parameters->{offset} // '';
+ my $size = $parameters->{size} // '';
+ my $statushash = $parameters->{statushash} // '';
+ my $interface = $parameters->{interface} // '';
+ my $ignore_holds_waiting = $parameters->{ignore_holds_waiting} // '';
my $dbh = C4::Context->dbh;
my ( @bind_params, @where_strings );
@@ -1130,6 +1132,11 @@ sub GetItemsForInventory {
push @where_strings, 'issues.date_due IS NULL';
}
+ if ( $ignore_holds_waiting ) {
+ $query .= "LEFT JOIN reserves ON items.itemnumber = reserves.itemnumber ";
+ push( @where_strings, q{reserves.found != 'W' OR reserves.found IS NULL} );
+ }
+
if ( @where_strings ) {
$query .= 'WHERE ';
$query .= join ' AND ', @where_strings;
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt
@@ -207,6 +207,11 @@ $(document).ready(function(){
[% END %]
+
+
+
+
+
--- a/tools/inventory.pl
+++ a/tools/inventory.pl
@@ -46,6 +46,7 @@ $maxlocation=$minlocation.'Z' unless ( $maxlocation || ! $minlocation );
my $location=$input->param('location') || '';
my $itemtype=$input->param('itemtype'); # FIXME note, template does not currently supply this
my $ignoreissued=$input->param('ignoreissued');
+my $ignore_holds_waiting = $input->param('ignore_holds_waiting');
my $datelastseen = $input->param('datelastseen');
my $markseen = $input->param('markseen');
my $branchcode = $input->param('branchcode') || '';
@@ -136,6 +137,7 @@ $template->param(
maxlocation => $maxlocation,
location => $location,
ignoreissued => $ignoreissued,
+ ignore_holds_waiting => $ignore_holds_waiting,
branchcode => $branchcode,
branch => $branch,
datelastseen => $datelastseen,
@@ -244,37 +246,42 @@ if ( $markseen or $op ) {
# We use datelastseen only when comparing the results to the barcode file.
my $paramdatelastseen = ($compareinv2barcd) ? $datelastseen : '';
- ($inventorylist, $totalrecords) = GetItemsForInventory( {
- minlocation => $minlocation,
- maxlocation => $maxlocation,
- location => $location,
- itemtype => $itemtype,
- ignoreissued => $ignoreissued,
- datelastseen => $paramdatelastseen,
- branchcode => $branchcode,
- branch => $branch,
- offset => 0,
- size => undef,
- statushash => $staton,
- interface => 'staff',
- } );
+ ( $inventorylist, $totalrecords ) = GetItemsForInventory(
+ {
+ minlocation => $minlocation,
+ maxlocation => $maxlocation,
+ location => $location,
+ itemtype => $itemtype,
+ ignoreissued => $ignoreissued,
+ datelastseen => $paramdatelastseen,
+ branchcode => $branchcode,
+ branch => $branch,
+ offset => 0,
+ size => undef,
+ statushash => $staton,
+ interface => 'staff',
+ ignore_holds_waiting => $ignore_holds_waiting,
+ }
+ );
# For the items that may be marked as "wrong place", we only check the location (callnumbers, location and branch)
- ($wrongplacelist, $totalrecords) = GetItemsForInventory( {
- minlocation => $minlocation,
- maxlocation => $maxlocation,
- location => $location,
- itemtype => undef,
- ignoreissued => undef,
- datelastseen => undef,
- branchcode => $branchcode,
- branch => $branch,
- offset => 0,
- size => undef,
- statushash => undef,
- interface => 'staff',
- } );
-
+ ( $wrongplacelist, $totalrecords ) = GetItemsForInventory(
+ {
+ minlocation => $minlocation,
+ maxlocation => $maxlocation,
+ location => $location,
+ itemtype => undef,
+ ignoreissued => undef,
+ datelastseen => undef,
+ branchcode => $branchcode,
+ branch => $branch,
+ offset => 0,
+ size => undef,
+ statushash => undef,
+ interface => 'staff',
+ ignore_holds_waiting => $ignore_holds_waiting,
+ }
+ );
}
# If "compare barcodes list to results" has been checked, we want to alert for missing items
--