Bug 14920: Simplify the date management on reserveratios
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 13 Oct 2015 10:46:18 +0000 (11:46 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Tue, 13 Oct 2015 14:39:11 +0000 (11:39 -0300)
Note that the previous patch was wrong, the start date defaulted to yesterday,
the original behavior is to default to last year.

This patch removes some unecessary variable declarations and tests.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
circ/reserveratios.pl

index 27cc86c..bd51b7c 100755 (executable)
@@ -55,18 +55,14 @@ if ($booksellerid && $basketno) {
      $template->param( booksellerid => $booksellerid, basketno => $basketno );
 }
 
-$startdate = eval { output_pref( { dt => dt_from_string( $startdate ), dateonly => 1, dateformat => 'iso' } ); };
-$enddate = eval { output_pref( { dt => dt_from_string( $enddate ), dateonly => 1, dateformat => 'iso' } ); };
+$startdate = eval { dt_from_string( $startdate ) } if $startdate;
+$enddate = eval { dt_from_string( $enddate ) } if $enddate;
 
-my $todaysdate_dt = dt_from_string;
-my $todaysdate  = output_pref( { dt => $todaysdate_dt, dateonly => 1, dateformat => 'iso' } );
+my $todaysdate = dt_from_string;
 
 #    A default of the prior years's holds is a reasonable way to pull holds
-my $datelastyear_dt = $todaysdate_dt->subtract( days => 1);
-my $datelastyear = output_pref( { dt => $datelastyear_dt, dateonly => 1, dateformat => 'iso' } );
-
-$startdate = $datelastyear unless $startdate;
 $enddate = $todaysdate unless $enddate;
+$startdate = $todaysdate->clone->subtract( years => 1 ) unless $startdate;
 
 if (!defined($ratio)) {
     $ratio = 3;
@@ -79,16 +75,13 @@ if ($ratio <= 0) {
 
 my $dbh    = C4::Context->dbh;
 my $sqldatewhere = "";
-$debug and warn output_pref({ dt => dt_from_string( $startdate ), dateformat => 'iso', dateonly => 1 }) . "\n" . output_pref({ dt => dt_from_string( $enddate ), dateformat => 'iso', dateonly => 1 });
+$debug and warn output_pref({ dt => $startdate, dateformat => 'iso', dateonly => 1 }) . "\n" . output_pref({ dt => $enddate, dateformat => 'iso', dateonly => 1 });
 my @query_params = ();
-if ($startdate) {
-    $sqldatewhere .= " AND reservedate >= ?";
-    push @query_params, $startdate ;
-}
-if ($enddate) {
-    $sqldatewhere .= " AND reservedate <= ?";
-    push @query_params, $enddate;
-}
+
+$sqldatewhere .= " AND reservedate >= ?";
+push @query_params, output_pref({ dt => $startdate, dateformat => 'iso' }) ;
+$sqldatewhere .= " AND reservedate <= ?";
+push @query_params, output_pref({ dt => $enddate, dateformat => 'iso' });
 
 my $nfl_comparison = $include_ordered ? '<=' : '=';
 my $strsth =