From 86b6f546e5a17e5256de06d92b38abf86b619a41 Mon Sep 17 00:00:00 2001
From: Mark Tompsett <mtompset@hotmail.com>
Date: Tue, 26 Nov 2013 14:40:35 -0500
Subject: [PATCH] [SIGNED-OFF] Bug 11253 - tools/inventory.pl output_pref
 ignores 'iso' parameter passed

Took all the output_pref function calls and converted them
to the newer hash format parameter.  Added special case for
dd-mm-yyyy calls, so dt_from_string works correctly.

TEST PLAN
---------
Create a small barcode file from books in a given branch.
Set I18N/L10N system preference of dateformat to mm/dd/yyyy.
Go to inventory/stocktaking tool.
Browse for the barcode file.
Select the branch (i.e. not All libraries) to match.
Click submit
Table displays dates in "Unseen since" column.

Set I18N/L10N system preference of dateformat to yyyy-mm-dd.
Go to inventory/stocktaking tool.
Browse for the barcode file.
Select the branch (i.e. not All libraries) to match.
Click submit
Table displays dates in "Unseen since" column.

Set I18N/L10N system preference of dateformat to dd/mm/yyyy.
Go to inventory/stocktaking tool.
Browse for the barcode file.
Select the branch (i.e. not All libraries) to match.
Click submit
KABOOM!

Apply patch
Go to inventory/stocktaking tool.
Browse for the barcode file.
Select the branch (i.e. not All libraries) to match.
Click submit
Table displays dates in "Unseen since" column.

Signed-off-by: wajasu <matted-34813@mypacks.net>
---
 tools/inventory.pl | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tools/inventory.pl b/tools/inventory.pl
index 3d8939e..4301e6b 100755
--- a/tools/inventory.pl
+++ b/tools/inventory.pl
@@ -150,8 +150,14 @@ my @scanned_items;
 my @errorloop;
 if ( $uploadbarcodes && length($uploadbarcodes) > 0 ) {
     my $dbh = C4::Context->dbh;
-    my $date = dt_from_string( $input->param('setdate') );
-    $date = output_pref( $date, 'iso' );
+    my $date;
+    if (C4::Context->preference('dateformat') eq 'dd/mm/yyyy') {
+        $date = dt_from_string( $input->param('setdate'), 'metric' );
+    }
+    else {
+        $date = dt_from_string( $input->param('setdate') );
+    }
+    $date = output_pref( { dt => $date, dateformat => 'iso' } );
 
     my $strsth  = "select * from issues, items where items.itemnumber=issues.itemnumber and items.barcode =?";
     my $qonloan = $dbh->prepare($strsth);
@@ -204,9 +210,9 @@ if ( $markseen or $op ) {
 # If "compare barcodes list to results" has been checked, we want to alert for missing items
 if ( $compareinv2barcd ) {
     # set "missing" flags for all items with a datelastseen (dls) before the choosen datelastseen (cdls)
-    my $dls = output_pref( dt_from_string( $datelastseen ), 'iso' );
+    my $dls = output_pref( { dt => dt_from_string( $datelastseen ), dateformat => 'iso' } );
     foreach my $item ( @$inventorylist ) {
-        my $cdls = output_pref( dt_from_string( $_->{datelastseen} ), 'iso' );
+        my $cdls = output_pref( { dt => dt_from_string( $_->{datelastseen} ), dateformat => 'iso' } );
         if ( $cdls lt $dls ) {
             $item->{problem} = 'missingitem';
             # We have to push a copy of the item, not the reference
-- 
1.8.5.3