@@ -, +, @@
---
C4/Items.pm | 6 ++++++
.../prog/en/modules/tools/inventory.tt | 20 ++++++++++++++++++-
tools/inventory.pl | 10 ++++++++++
3 files changed, 35 insertions(+), 1 deletion(-)
--- a/C4/Items.pm
+++ a/C4/Items.pm
@@ -525,6 +525,7 @@ sub GetItemsForInventory {
my $minlocation = $parameters->{'minlocation'} // '';
my $maxlocation = $parameters->{'maxlocation'} // '';
my $class_source = $parameters->{'class_source'} // C4::Context->preference('DefaultClassificationSource');
+ my $items_bundle = $parameters->{'items_bundle'} // '';
my $location = $parameters->{'location'} // '';
my $itemtype = $parameters->{'itemtype'} // '';
my $ignoreissued = $parameters->{'ignoreissued'} // '';
@@ -571,6 +572,11 @@ sub GetItemsForInventory {
push @bind_params, $max_cnsort;
}
+ if ($items_bundle) {
+ push @where_strings, 'items.itemnumber IN (SELECT itemnumber FROM items_bundle_item WHERE items_bundle_id = ?)';
+ push @bind_params, $items_bundle;
+ }
+
if ($datelastseen) {
$datelastseen = output_pref({ str => $datelastseen, dateformat => 'iso', dateonly => 1 });
push @where_strings, '(datelastseen < ? OR datelastseen IS NULL)';
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt
@@ -133,6 +133,17 @@
[% END %]
+ [% IF items_bundles.size > 0 %]
+
+
+
+
+ [% END %]
@@ -348,7 +359,8 @@
$('#locationloop').val() ||
$('#minlocation').val() ||
$('#maxlocation').val() ||
- $('#statuses input:checked').length
+ $('#statuses input:checked').length ||
+ $('#items_bundle').val()
) ) {
return confirm(
_("You have not selected any catalog filters and are about to compare a file of barcodes to your entire catalog.") + "\n\n" +
@@ -488,6 +500,12 @@
});
});
+ [% INCLUDE 'select2.inc' %]
+
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]
--- a/tools/inventory.pl
+++ a/tools/inventory.pl
@@ -47,6 +47,7 @@ my $minlocation=$input->param('minlocation') || '';
my $maxlocation=$input->param('maxlocation');
my $class_source=$input->param('class_source');
$maxlocation=$minlocation.'Z' unless ( $maxlocation || ! $minlocation );
+my $items_bundle = $input->param('items_bundle');
my $location=$input->param('location') || '';
my $ignoreissued=$input->param('ignoreissued');
my $ignore_waiting_holds = $input->param('ignore_waiting_holds');
@@ -66,6 +67,12 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
}
);
+my $schema = Koha::Database->new()->schema();
+my $items_bundle_rs = $schema->resultset('ItemsBundle');
+my @items_bundles = $items_bundle_rs->search(undef, {
+ order_by => { -asc => ['biblionumber.title'] },
+ join => ['biblionumber'],
+});
my @authorised_value_list;
my $authorisedvalue_categories = '';
@@ -134,6 +141,7 @@ foreach my $itemtype ( @itemtypes ) {
$template->param(
authorised_values => \@authorised_value_list,
+ items_bundles => \@items_bundles,
today => dt_from_string,
minlocation => $minlocation,
maxlocation => $maxlocation,
@@ -249,6 +257,7 @@ if ( $op && ( !$uploadbarcodes || $compareinv2barcd )) {
minlocation => $minlocation,
maxlocation => $maxlocation,
class_source => $class_source,
+ items_bundle => $items_bundle,
location => $location,
ignoreissued => $ignoreissued,
datelastseen => $datelastseen,
@@ -267,6 +276,7 @@ if( @scanned_items ) {
maxlocation => $maxlocation,
class_source => $class_source,
location => $location,
+ items_bundle => $items_bundle,
ignoreissued => undef,
datelastseen => undef,
branchcode => $branchcode,
--