Bug 15090: Fix date filter for Suggestions management
authorMarc Véron <veron@veron.ch>
Fri, 30 Oct 2015 14:23:30 +0000 (15:23 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 2 Nov 2015 14:35:02 +0000 (11:35 -0300)
Home > Acquisitions > Suggestions management:
Before 13813 the "from" date in filters was 0000-00-00 if not
filled, afer 13813 it's today.

This patch re-introduces 0000-00-00.

See http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=13813#c172

To test:
- Go to Home > Acquisitions > Suggestions management
- Verify that date filters work as expected
- Verify that start dates in sql query are 0000-00-00 if no start
  dates are given
- Note: Line 185 outputs the start dates as warn if $debug is set.

Signed-off-by: Nicole Engard <nengard@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
C4/Suggestions.pm

index 02e32b9..30746b7 100644 (file)
@@ -177,10 +177,15 @@ sub SearchSuggestion {
     foreach my $field (qw( suggesteddate manageddate accepteddate )) {
         my $from = $field . "_from";
         my $to   = $field . "_to";
+        my $from_dt;
+        $from_dt = eval { dt_from_string( $suggestion->{$from} ) } if ( $suggestion->{$from} );
+        my $from_sql = '0000-00-00';
+        $from_sql = output_pref({ dt => $from_dt, dateformat => 'iso', dateonly => 1 })
+            if ($from_dt);
+        $debug && warn "SQL for start date ($field): $from_sql";
         if ( $suggestion->{$from} || $suggestion->{$to} ) {
             push @query, qq{ AND suggestions.$field BETWEEN ? AND ? };
-            push @sql_params,
-              output_pref({ dt => dt_from_string( $suggestion->{$from} ), dateformat => 'iso', dateonly => 1 }) || '0000-00-00';
+            push @sql_params, $from_sql;
             push @sql_params,
               output_pref({ dt => dt_from_string( $suggestion->{$to} ), dateformat => 'iso', dateonly => 1 }) || output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
         }