Bug 8652: Followup: add a default value for date_from
authorJonathan Druart <jonathan.druart@biblibre.com>
Wed, 12 Sep 2012 07:50:16 +0000 (09:50 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Tue, 9 Oct 2012 09:27:42 +0000 (11:27 +0200)
This patchis add a third parameter to the output_pref routine. It allows
to specify the output string with or without the hours and minutes
(%H:%M)

Signed-off-by: MathildeF <mathilde.formery@ville-nimes.fr>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Koha/DateUtils.pm
acqui/lateorders.pl

index b2c1df8..4ffc160 100644 (file)
@@ -101,11 +101,15 @@ or C<undef> if C<undef> was provided.
 A second parameter allows overriding of the syspref value. This is for testing only
 In usage use the DateTime objects own methods for non standard formatting
 
+A third parameter allows to specify if the output format contains the hours and minutes.
+If it is not defined, the default value is 0;
+
 =cut
 
 sub output_pref {
     my $dt         = shift;
-    my $force_pref = shift;    # if testing we want to override Context
+    my $force_pref = shift;         # if testing we want to override Context
+    my $dateonly   = shift || 0;    # if you don't want the hours and minutes
 
     return unless defined $dt;
 
@@ -113,16 +117,24 @@ sub output_pref {
       defined $force_pref ? $force_pref : C4::Context->preference('dateformat');
     given ($pref) {
         when (/^iso/) {
-            return $dt->strftime('%Y-%m-%d %H:%M');
+            return $dateonly
+                ? $dt->strftime('%Y-%m-%d')
+                : $dt->strftime('%Y-%m-%d %H:%M');
         }
         when (/^metric/) {
-            return $dt->strftime('%d/%m/%Y %H:%M');
+            return $dateonly
+                ? $dt->strftime('%d/%m/%Y')
+                : $dt->strftime('%d/%m/%Y %H:%M');
         }
         when (/^us/) {
-            return $dt->strftime('%m/%d/%Y %H:%M');
+            return $dateonly
+                ? $dt->strftime('%m/%d/%Y')
+                : $dt->strftime('%m/%d/%Y %H:%M');
         }
         default {
-            return $dt->strftime('%Y-%m-%d %H:%M');
+            return $dateonly
+                ? $dt->strftime('%Y-%m-%d')
+                : $dt->strftime('%Y-%m-%d %H:%M');
         }
 
     }
index 50e0f0e..544370d 100755 (executable)
@@ -78,16 +78,18 @@ my $estimateddeliverydatefrom_dt =
   : undef;
 
 # Get the "date to" param. If it is not defined and $delay is not defined too, it is the today's date.
-my $estimateddeliverydateto_dt = dt_from_string($estimateddeliverydateto);
+my $estimateddeliverydateto_dt = $estimateddeliverydateto
+    ? dt_from_string($estimateddeliverydateto)
+    : ( not defined $delay and not defined $estimateddeliverydatefrom)
+        ? dt_from_string()
+        : undef;
 
 # Format the output of "date from" and "date to"
-if ($estimateddeliverydatefrom) {
-    $estimateddeliverydatefrom = output_pref($estimateddeliverydatefrom_dt);
-    $estimateddeliverydatefrom =~ s/ \d\d:\d\d$//;
+if ($estimateddeliverydatefrom_dt) {
+    $estimateddeliverydatefrom = output_pref($estimateddeliverydatefrom_dt, undef, 1);
 }
-if ($estimateddeliverydateto) {
-    $estimateddeliverydateto = output_pref($estimateddeliverydateto_dt);
-    $estimateddeliverydateto =~ s/ \d\d:\d\d$//;
+if ($estimateddeliverydateto_dt) {
+    $estimateddeliverydateto = output_pref($estimateddeliverydateto_dt, undef, 1);
 }
 
 my $branch     = $input->param('branch');
@@ -117,15 +119,14 @@ if ($op and $op eq "send_alert"){
 }
 
 my @parameters = ( $delay, $branch );
-if ($estimateddeliverydatefrom_dt) {
-    push @parameters, $estimateddeliverydatefrom_dt->ymd();
-}
-else {
-    push @parameters, undef;
-}
-if ($estimateddeliverydateto_dt) {
-    push @parameters, $estimateddeliverydateto_dt->ymd();
-}
+push @parameters, $estimateddeliverydatefrom_dt
+    ? $estimateddeliverydatefrom_dt->ymd()
+    : undef;
+
+push @parameters, $estimateddeliverydateto_dt
+    ? $estimateddeliverydateto_dt->ymd()
+    : undef;
+
 my %supplierlist = GetBooksellersWithLateOrders(@parameters);
 
 my (@sloopy);  # supplier loop