Refactoring - moved quota related functions into quota class.
authorNik Okuntseff <support@anuko.com>
Mon, 29 Jan 2018 17:46:27 +0000 (17:46 +0000)
committerNik Okuntseff <support@anuko.com>
Mon, 29 Jan 2018 17:46:27 +0000 (17:46 +0000)
WEB-INF/lib/ttTimeHelper.class.php
WEB-INF/templates/footer.tpl
plugins/MonthlyQuota.class.php
quotas.php

index f8eadf2..748dc72 100644 (file)
@@ -102,53 +102,6 @@ class ttTimeHelper {
     return false;
   }
 
-  // isValidQuota validates a localized value as an hours quota string (in hours and minutes).
-  static function isValidQuota($value) {
-
-    if (strlen($value) == 0 || !isset($value)) return true;
-
-    if (preg_match('/^[0-9]{1,3}h?$/', $value )) { // 000 - 999
-      return true;
-    }
-
-    if (preg_match('/^[0-9]{1,3}:[0-5][0-9]$/', $value )) { // 000:00 - 999:59
-      return true;
-    }
-
-    global $user;
-    $localizedPattern = '/^([0-9]{1,3})?['.$user->decimal_mark.'][0-9]{1,4}h?$/';
-    if (preg_match($localizedPattern, $value )) { // decimal values like 000.5, 999.25h, ... .. 999.9999h (or with comma)
-      return true;
-    }
-
-    return false;
-  }
-
-  // quotaToFloat converts a valid quota value to a float.
-  static function quotaToFloat($value) {
-
-    if (preg_match('/^[0-9]{1,3}h?$/', $value )) { // 000 - 999
-      return (float) $value;
-    }
-
-    if (preg_match('/^[0-9]{1,3}:[0-5][0-9]$/', $value )) { // 000:00 - 999:59
-      $minutes = ttTimeHelper::toMinutes($value);
-      return ($minutes / 60.0);
-    }
-
-    global $user;
-    $localizedPattern = '/^([0-9]{1,3})?['.$user->decimal_mark.'][0-9]{1,4}h?$/';
-    if (preg_match($localizedPattern, $value )) { // decimal values like 000.5, 999.25h, ... .. 999.9999h (or with comma)
-      // Strip optional h in the end.
-      $value = trim($value, 'h');
-      if ($user->decimal_mark == ',')
-        $value = str_replace(',', '.', $value);
-      return (float) $value;
-    }
-
-    return null;
-  }
-
   // normalizeDuration - converts a valid time duration string to format 00:00.
   static function normalizeDuration($value, $leadingZero = true) {
     $time_value = $value;
index c202fb1..3eeef44 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.17.9.3832 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.17.9.3833 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index 13cbd9d..4fed3c9 100644 (file)
@@ -47,7 +47,7 @@ class MonthlyQuota {
     $deleteSql = "DELETE FROM tt_monthly_quotas WHERE year = $year AND month = $month AND team_id = $team_id";
     $this->db->exec($deleteSql);
     if ($quota){
-      $float_quota = ttTimeHelper::quotaToFloat($quota);
+      $float_quota = $this->quotaToFloat($quota);
       $insertSql = "INSERT INTO tt_monthly_quotas (team_id, year, month, quota) values ($team_id, $year, $month, $float_quota)";
       $affected = $this->db->exec($insertSql);
       return (!is_a($affected, 'PEAR_Error'));
@@ -115,4 +115,51 @@ class MonthlyQuota {
     }
     return $workdaysInMonth;
   }
+
+  // isValidQuota validates a localized value as an hours quota string (in hours and minutes).
+  public function isValidQuota($value) {
+
+    if (strlen($value) == 0 || !isset($value)) return true;
+
+    if (preg_match('/^[0-9]{1,3}h?$/', $value )) { // 000 - 999
+      return true;
+    }
+
+    if (preg_match('/^[0-9]{1,3}:[0-5][0-9]$/', $value )) { // 000:00 - 999:59
+      return true;
+    }
+
+    global $user;
+    $localizedPattern = '/^([0-9]{1,3})?['.$user->decimal_mark.'][0-9]{1,4}h?$/';
+    if (preg_match($localizedPattern, $value )) { // decimal values like 000.5, 999.25h, ... .. 999.9999h (or with comma)
+      return true;
+    }
+
+    return false;
+  }
+
+  // quotaToFloat converts a valid quota value to a float.
+  private function quotaToFloat($value) {
+
+    if (preg_match('/^[0-9]{1,3}h?$/', $value )) { // 000 - 999
+      return (float) $value;
+    }
+
+    if (preg_match('/^[0-9]{1,3}:[0-5][0-9]$/', $value )) { // 000:00 - 999:59
+      $minutes = ttTimeHelper::toMinutes($value);
+      return ($minutes / 60.0);
+    }
+
+    global $user;
+    $localizedPattern = '/^([0-9]{1,3})?['.$user->decimal_mark.'][0-9]{1,4}h?$/';
+    if (preg_match($localizedPattern, $value )) { // decimal values like 000.5, 999.25h, ... .. 999.9999h (or with comma)
+      // Strip optional h in the end.
+      $value = trim($value, 'h');
+      if ($user->decimal_mark == ',')
+        $value = str_replace(',', '.', $value);
+      return (float) $value;
+    }
+
+    return null;
+  }
 }
index d79e433..1065389 100644 (file)
@@ -73,7 +73,7 @@ if ($request->isPost()){
   // Validate user input.
   for ($i = 0; $i < count($months); $i++){
     $val = $request->getParameter($months[$i]);
-    if (!ttTimeHelper::isValidQuota($val))
+    if (!$quota->isValidQuota($val))
       $err->add($i18n->getKey('error.field'), $months[$i]);
   }
   // Finished validating user input.