Added a couple of clarifying comments.
[timetracker.git] / WEB-INF / lib / ttTimeHelper.class.php
index 2b5b39b..57790e2 100644 (file)
@@ -33,6 +33,11 @@ class ttTimeHelper {
 
   // isWeekend determines if $date falls on weekend.
   static function isWeekend($date) {
+    // NOTE: this does not work for subgroups with different WEEKEND_START_DAY
+    // as the setting is per server. Example: a parent group in USA, with a subgroup
+    // in Saudi Arabia. Their weekends are the same.
+    // Decided NOT to introduce a configurable WEEKEND_START_DAY for groups in UI
+    // to keep UI simple, for now. See also Calendar class with the same issue.
     $weekDay = date('w', strtotime($date));
     return ($weekDay == WEEKEND_START_DAY || $weekDay == (WEEKEND_START_DAY + 1) % 7);
   }
@@ -40,22 +45,6 @@ class ttTimeHelper {
   // isHoliday determines if $date falls on a holiday.
   static function isHoliday($date) {
     global $user;
-    global $i18n;
-
-    if (!$user->show_holidays) return false;
-
-    // $date is expected as string in DB_DATEFORMAT.
-    $month = date('m', strtotime($date));
-    $day = date('d', strtotime($date));
-    if (in_array($month.'/'.$day, $i18n->holidays))
-      return true;
-
-    return false;
-  }
-
-  // isHoliday determines if $date falls on a holiday.
-  static function isHoliday2($date) {
-    global $user;
 
     $holidays = $user->getHolidays();
     if (!$holidays)
@@ -88,6 +77,16 @@ class ttTimeHelper {
     return true;
   }
 
+  // dateInDatabaseFormat prepares a date string in DB_DATEFORMAT out of year, month, and day.
+  static function dateInDatabaseFormat($year, $month, $day) {
+    $date = "$year-";
+    if (strlen($month) == 1) $date .= '0';
+    $date .= "$month-";
+    if (strlen($day) == 1) $date .= '0';
+    $date .= $day;
+    return $date;
+  }
+
   // isValidTime validates a value as a time string.
   static function isValidTime($value) {
     if (strlen($value)==0 || !isset($value)) return false;