Bug 14001 - Inventory has bad $_ references
authorMark Tompsett <mtompset@hotmail.com>
Wed, 15 Apr 2015 16:33:29 +0000 (12:33 -0400)
committerMason James <mtj@kohaaloha.com>
Sat, 25 Jul 2015 13:20:11 +0000 (01:20 +1200)
After receiving an error while attempt a simple inventory run,
Two lines were changed from:
    ...$_->...
to
    ...$item->...
since the loop variable is $item. And $_ is not set to the
expected hash reference, when there is a loop variable.

This also helps explain the "Why are there blank dates on my
last seen field?" problem that has been mentioned by users.

TEST PLAN
---------
 1) Apply this patch after a reset to master.
 2) Log in to staff client
 3) Add one item via z39.50, setting barcode to a known value (BARCODE1)
 4) Wait for the reindex
 5) Home -> Tools -> Inventory/Stocktaking
 6) Browse for a file with the barcode in it
 7) Set the library dropdown to the library branch of the added item.
 8) Check 'Compare barcodes list to results:'
 9) Click 'Submit'
    -- This should not die under plack.
       This should not generate blank last seen dates.
       The last seen dates should be as expected.
10) run koha qa test tools
11) Confirm the two change point correspond to the two change points
    in the patch which shall not be pushed to master.

The test result comply with expected outcome outlined in test plan.

Signed-off-by: Indranil Das Gupta (L2C2 Technologies) <indradg@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
Signed-off-by: Mason James <mtj@kohaaloha.com>

tools/inventory.pl

index 97ef090..2ed4de8 100755 (executable)
@@ -215,7 +215,7 @@ if ( $compareinv2barcd ) {
     my $dls = output_pref( { dt => dt_from_string( $datelastseen ),
                              dateformat => 'iso' } );
     foreach my $item ( @$inventorylist ) {
-        my $cdls = output_pref( { dt => dt_from_string( $_->{datelastseen} ),
+        my $cdls = output_pref( { dt => dt_from_string( $item->{datelastseen} ),
                                   dateformat => 'iso' } );
         if ( $cdls lt $dls ) {
             $item->{problem} = 'missingitem';
@@ -262,7 +262,7 @@ foreach my $item ( @scanned_items ) {
     }
 
     # Modify date last seen for scanned items
-    ModDateLastSeen($_->{'itemnumber'});
+    ModDateLastSeen($item->{'itemnumber'});
     $moddatecount++;
 }