Split check_report_dates() into shared function check_dates().
authorIain Patterson <me@iain.cx>
Fri, 8 Apr 2016 11:58:55 +0000 (07:58 -0400)
committerIain Patterson <me@iain.cx>
Fri, 8 Apr 2016 11:58:55 +0000 (07:58 -0400)
lib/functions.php
lib/report.php

index 34b23c7..7f937dd 100644 (file)
     echo call_user_func_array("get_small_link", func_get_args());
   }
 
+  function check_dates($description, $from, $to, $mandatory_from = true, $mandatory_to = true) {
+    $Description = ucfirst($description);
+    if ($from || $mandatory_from) {
+      list($y, $m, $d) = explode('-', $from);
+      if (! checkdate($m, $d, $y)) {
+        echo "<p>Invalid $description start date!</p>\n";
+        return false;
+      }
+      $start = mktime(0, 0, 0, $m, $d, $y);
+    }
+    else $start = 0;
+
+    if ($to || $mandatory_to) {
+      list($y, $m, $d) = explode('-', $to);
+      if (! checkdate($m, $d, $y)) {
+        echo "<p>Invalid $description end date!</p>\n";
+        return false;
+      }
+      $end = mktime(0, 0, 0, $m, $d, $y);
+    }
+    else $end = PHP_INT_MAX;
+
+    if ($end < $start) {
+      echo "<p>$Description end date is earlier than start date!</p>\n";
+      return false;
+    }
+
+    return true;
+  }
+
   include_once(join(DIRECTORY_SEPARATOR, array($lib_root, "admin.php")));
   include_once(join(DIRECTORY_SEPARATOR, array($lib_root, "forms.php")));
 
index 999bbc5..aa9e6e5 100644 (file)
     end_form();
   }
 
-  function check_report_dates($from, $to) {
-    list($y, $m, $d) = explode('-', $from);
-    if (! checkdate($m, $d, $y)) {
-      echo "<p>Invalid report start date!</p>\n";
-      return false;
-    }
-    $start = mktime(0, 0, 0, $m, $d, $y);
-
-    list($y, $m, $d) = explode('-', $to);
-    if (! checkdate($m, $d, $y)) {
-      echo "<p>Invalid report end date!</p>\n";
-      return false;
-    }
-    $end = mktime(0, 0, 0, $m, $d, $y);
-
-    if ($end < $start) {
-      echo "<p>Report end date is earlier than start date!</p>\n";
-      return false;
-    }
-
-    return true;
-  }
-
   function show_order_report($from, &$order_state_ids) {
     echo "<h3>Orders by week</h3>\n";
 
   }
 
   function show_reports($from, $to) {
-    if (! check_report_dates($from, $to)) return;
+    if (! check_dates('report', $from, $to)) return;
 
     echo "<p>Showing reports for the period <strong>$from</strong> to <strong>$to</strong>.</p>\n";