@@ -, +, @@
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;
--