@@ -, +, @@ order --- .../prog/en/modules/tools/inventory.tt | 3 +++ tools/inventory.pl | 24 ++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/inventory.tt @@ -47,6 +47,7 @@
  • +
  • @@ -225,6 +226,8 @@ Still checked out
    [% ELSIF problem.key == 'no_barcode' %] No barcode
    + [% ELSIF problem.key == 'out_of_order' %] + Item may be shelved out of order
    [% END %] [% END %] --- a/tools/inventory.pl +++ a/tools/inventory.pl @@ -52,6 +52,7 @@ my $branch = $input->param('branch'); my $op = $input->param('op'); my $compareinv2barcd = $input->param('compareinv2barcd'); my $dont_checkin = $input->param('dont_checkin'); +my $out_of_order = $input->param('out_of_order'); my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "tools/inventory.tt", @@ -252,7 +253,10 @@ if( @scanned_items ) { # Report scanned items that are on the wrong place, or have a wrong notforloan # status, or are still checked out. -foreach my $item ( @scanned_items ) { +for ( my $i = 0; $i < @scanned_items; $i++ ) { + + my $item = $scanned_items[$i]; + $item->{notforloancode} = $item->{notforloan}; # save for later use my $fc = $item->{'frameworkcode'} || ''; @@ -271,6 +275,24 @@ foreach my $item ( @scanned_items ) { additemtoresults( $item, $results ); } + # Check for items shelved out of order + if ($out_of_order) { + unless ( $i == 0 ) { + my $previous_item = $scanned_items[ $i - 1 ]; + if ( $previous_item && $item->{cn_sort} lt $previous_item->{cn_sort} ) { + $item->{problems}->{out_of_order} = 1; + additemtoresults( $item, $results ); + } + } + unless ( $i == scalar(@scanned_items) ) { + my $next_item = $scanned_items[ $i + 1 ]; + if ( $next_item && $item->{cn_sort} gt $next_item->{cn_sort} ) { + $item->{problems}->{out_of_order} = 1; + additemtoresults( $item, $results ); + } + } + } + # Report an item that is checked out (unusual!) or wrongly placed if( $item->{onloan} ) { $item->{problems}->{checkedout} = 1; --