@@ -, +, @@ --- C4/Items.pm | 8 ++++++- .../prog/en/modules/tools/inventory.tt | 21 +++++++++++++++++ tools/inventory.pl | 27 ++++++++++++++++++---- 3 files changed, 51 insertions(+), 5 deletions(-) --- a/C4/Items.pm +++ a/C4/Items.pm @@ -1068,12 +1068,13 @@ sub GetItemsForInventory { my $size = $parameters->{'size'} // ''; my $statushash = $parameters->{'statushash'} // ''; my $interface = $parameters->{'interface'} // ''; + my $ccode = $parameters->{'ccode'} // ''; my $dbh = C4::Context->dbh; my ( @bind_params, @where_strings ); my $select_columns = q{ - SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber + SELECT items.itemnumber, barcode, itemcallnumber, title, author, biblio.biblionumber, biblio.frameworkcode, datelastseen, homebranch, location, notforloan, damaged, itemlost, withdrawn, stocknumber, ccode }; my $select_count = q{SELECT COUNT(*)}; my $query = q{ @@ -1090,6 +1091,11 @@ sub GetItemsForInventory { } } + if ($ccode){ + push @where_strings, 'ccode = ?'; + push @bind_params, $ccode; + } + if ($minlocation) { push @where_strings, 'itemcallnumber >= ?'; push @bind_params, $minlocation; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt @@ -14,6 +14,7 @@ function checkForm() { if ( !( $('#branchloop').val() || $('#locationloop').val() || + $('#ccodeloop').val() || $('#minlocation').val() || $('#maxlocation').val() || $('#statuses input:checked').length @@ -162,6 +163,21 @@ $(document).ready(function(){ [% END %] [% END %] + [% IF ( ccode_list ) %] +
  • + + +
  • + [% END %]
  • (items.itemcallnumber)
  • @@ -235,6 +251,7 @@ $(document).ready(function(){ + [% UNLESS compareinv2barcd %]
    [Select all] [Clear all]
    @@ -246,6 +263,7 @@ $(document).ready(function(){ [% UNLESS compareinv2barcd %]Seen[% END %] Barcode Library + [% IF ( ccode_list ) %]Collection code[% END %] Title Status Lost @@ -271,6 +289,9 @@ $(document).ready(function(){ [% result.location | html %] [% IF ( result.itemcallnumber ) %][[% result.itemcallnumber | html %]][% ELSE %][% END %] + [% IF ( ccode_list ) %][% result.ccode | html %][% END %] + +

    [% result.title | html %]

    [% result.author | html %]

    --- a/tools/inventory.pl +++ a/tools/inventory.pl @@ -53,6 +53,7 @@ my $branch = $input->param('branch'); my $op = $input->param('op'); my $compareinv2barcd = $input->param('compareinv2barcd'); my $dont_checkin = $input->param('dont_checkin'); +my $ccode = $input->param('ccode'); my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "tools/inventory.tt", @@ -80,6 +81,9 @@ my $authorisedvalue_categories = ''; my $frameworks = getframeworks(); $frameworks->{''} = {frameworkcode => ''}; # Add the default framework +my @collections = (); +my @collection_codes = (); + for my $fwk (keys %$frameworks){ my $fwkcode = $frameworks->{$fwk}->{'frameworkcode'}; my $authcode = GetAuthValCode('items.location', $fwkcode); @@ -91,7 +95,19 @@ for my $fwk (keys %$frameworks){ } push @authorised_value_list,@$data; } + + my $collection_authorised_value = C4::Koha::GetAuthValCode("items.ccode", $fwkcode); + if ($collection_authorised_value && (! grep { $collection_authorised_value eq $_ } @collection_codes) ) { + #Add authorised value category to array + push (@collection_codes,$collection_authorised_value); + my $collection_values = C4::Koha::GetAuthorisedValues($collection_authorised_value); + if (ref $collection_values eq 'ARRAY' && @$collection_values){ + #Add authorised values to array + push(@collections,@$collection_values); + } + } } +$template->param( ccode_list => \@collections ); my $statuses = []; for my $statfield (qw/items.notforloan items.itemlost items.withdrawn items.damaged/){ @@ -139,7 +155,8 @@ $template->param( branch => $branch, datelastseen => $datelastseen, compareinv2barcd => $compareinv2barcd, - notforloanlist => $notforloanlist + notforloanlist => $notforloanlist, + ccode => $ccode, ); my @notforloans; @@ -256,9 +273,10 @@ if ( $markseen or $op ) { size => undef, statushash => $staton, interface => 'staff', + ccode => $ccode, } ); - # For the items that may be marked as "wrong place", we only check the location (callnumbers, location and branch) + # For the items that may be marked as "wrong place", we only check the location (callnumbers, location, ccode and branch) ($wrongplacelist, $totalrecords) = GetItemsForInventory( { minlocation => $minlocation, maxlocation => $maxlocation, @@ -272,6 +290,7 @@ if ( $markseen or $op ) { size => undef, statushash => undef, interface => 'staff', + ccode => $ccode, } ); } @@ -385,7 +404,7 @@ if (defined $input->param('CSVexport') && $input->param('CSVexport') eq 'on'){ my @translated_keys; for my $key (qw / biblioitems.title biblio.author items.barcode items.itemnumber - items.homebranch items.location + items.homebranch items.location items.ccode items.itemcallnumber items.notforloan items.itemlost items.damaged items.withdrawn items.stocknumber @@ -397,7 +416,7 @@ if (defined $input->param('CSVexport') && $input->param('CSVexport') eq 'on'){ $csv->combine(@translated_keys); print $csv->string, "\n"; - my @keys = qw / title author barcode itemnumber homebranch location itemcallnumber notforloan lost damaged withdrawn stocknumber /; + my @keys = qw / title author barcode itemnumber homebranch location ccode itemcallnumber notforloan lost damaged withdrawn stocknumber /; for my $item ( @results ) { my @line; for my $key (@keys) { --