Further refactoring of the FormElement class.
[timetracker.git] / WEB-INF / lib / ttTeamHelper.class.php
index 186f7a1..52f24fc 100644 (file)
@@ -56,7 +56,7 @@ class ttTeamHelper {
       inner join tt_users u on (u.id = upb.user_id)
       where (u.status = 1 or u.status = 0)
       group by u.id
-      order by u.name";
+      order by upper(u.name)";
     $res = $mdb2->query($sql);
     $user_list = array();
     if (is_a($res, 'PEAR_Error'))
@@ -73,9 +73,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if (isset($options['getAllFields']))
-      $sql = "select * from tt_users where team_id = $user->team_id and status = 1 order by name";
+      $sql = "select * from tt_users where team_id = $user->team_id and status = 1 order by upper(name)";
     else
-      $sql = "select id, name from tt_users where team_id = $user->team_id and status = 1 order by name";
+      $sql = "select id, name from tt_users where team_id = $user->team_id and status = 1 order by upper(name)";
     $res = $mdb2->query($sql);
     $user_list = array();
     if (is_a($res, 'PEAR_Error'))
@@ -103,7 +103,7 @@ class ttTeamHelper {
     global $user;
     $mdb2 = getConnection();
 
-    $sql = "select id, name from tt_users where team_id = $user->team_id and (status = 1 or status = 0) order by name";
+    $sql = "select id, name from tt_users where team_id = $user->team_id and (status = 1 or status = 0) order by upper(name)";
     $res = $mdb2->query($sql);
     $user_list = array();
     if (is_a($res, 'PEAR_Error'))
@@ -120,9 +120,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_users where team_id = $team_id and status = 0 order by name";
+      $sql = "select * from tt_users where team_id = $team_id and status = 0 order by upper(name)";
     else
-      $sql = "select id, name from tt_users where team_id = $team_id and status = 0 order by name";
+      $sql = "select id, name from tt_users where team_id = $team_id and status = 0 order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -139,9 +139,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_users where team_id = $team_id order by name";
+      $sql = "select * from tt_users where team_id = $team_id order by upper(name)";
     else
-      $sql = "select id, name from tt_users where team_id = $team_id order by name";
+      $sql = "select id, name from tt_users where team_id = $team_id order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -160,7 +160,7 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     $sql = "select id, name, description, tasks from tt_projects
-      where team_id = $team_id and status = 1 order by name";
+      where team_id = $team_id and status = 1 order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -178,7 +178,7 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     $sql = "select id, name, description, tasks from tt_projects
-      where team_id = $team_id and status = 0 order by name";
+      where team_id = $team_id and status = 0 order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -194,9 +194,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_projects where team_id = $team_id order by status, name";
+      $sql = "select * from tt_projects where team_id = $team_id order by status, upper(name)";
     else
-      $sql = "select id, name from tt_projects where team_id = $team_id order by status, name";
+      $sql = "select id, name from tt_projects where team_id = $team_id order by status, upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -214,7 +214,7 @@ class ttTeamHelper {
     $result = array();
     $mdb2 = getConnection();
 
-    $sql = "select id, name, description from tt_tasks where team_id = $team_id and status = 1 order by name";
+    $sql = "select id, name, description from tt_tasks where team_id = $team_id and status = 1 order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -232,7 +232,7 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     $sql = "select id, name, description from tt_tasks
-      where team_id = $team_id and status = 0 order by name";
+      where team_id = $team_id and status = 0 order by upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -248,9 +248,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_tasks where team_id = $team_id order by status, name";
+      $sql = "select * from tt_tasks where team_id = $team_id order by status, upper(name)";
     else
-      $sql = "select id, name from tt_tasks where team_id = $team_id order by status, name";
+      $sql = "select id, name from tt_tasks where team_id = $team_id order by status, upper(name)";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -269,9 +269,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_clients where team_id = $team_id and status = 1 order by name";
+      $sql = "select * from tt_clients where team_id = $team_id and status = 1 order by upper(name)";
     else
-      $sql = "select id, name from tt_clients where team_id = $team_id and status = 1 order by name";
+      $sql = "select id, name from tt_clients where team_id = $team_id and status = 1 order by upper(name)";
 
     $res = $mdb2->query($sql);
     $result = array();
@@ -290,9 +290,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_clients where team_id = $team_id and status = 0 order by name";
+      $sql = "select * from tt_clients where team_id = $team_id and status = 0 order by upper(name)";
     else
-      $sql = "select id, name from tt_clients where team_id = $team_id and status = 0 order by name";
+      $sql = "select id, name from tt_clients where team_id = $team_id and status = 0 order by upper(name)";
 
     $res = $mdb2->query($sql);
     $result = array();
@@ -309,9 +309,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     if ($all_fields)
-      $sql = "select * from tt_clients where team_id = $team_id order by status, name";
+      $sql = "select * from tt_clients where team_id = $team_id order by status, upper(name)";
     else
-      $sql = "select id, name from tt_clients where team_id = $team_id order by status, name";
+      $sql = "select id, name from tt_clients where team_id = $team_id order by status, upper(name)";
 
     $res = $mdb2->query($sql);
     $result = array();
@@ -498,6 +498,23 @@ class ttTeamHelper {
     return false;
   }
 
+  // getPredefinedExpenses - obtains predefined expenses for team.
+  static function getPredefinedExpenses($team_id) {
+    $mdb2 = getConnection();
+
+    $result = array();
+    $sql = "select id, name, cost from tt_predefined_expenses where team_id = $team_id";
+    $res = $mdb2->query($sql);
+    $result = array();
+    if (!is_a($res, 'PEAR_Error')) {
+      while ($val = $res->fetchRow()) {
+        $result[] = $val;
+      }
+      return $result;
+    }
+    return false;
+  }
+
   // getNotifications - obtains notification descriptions for team.
   static function getNotifications($team_id) {
     $mdb2 = getConnection();
@@ -517,6 +534,23 @@ class ttTeamHelper {
     return false;
   }
 
+  // getMonthlyQuotas - obtains monthly quotas for team.
+  static function getMonthlyQuotas($team_id) {
+    $mdb2 = getConnection();
+
+    $result = array();
+    $sql = "select year, month, quota from tt_monthly_quotas where team_id = $team_id";
+    $res = $mdb2->query($sql);
+    $result = array();
+    if (!is_a($res, 'PEAR_Error')) {
+      while ($val = $res->fetchRow()) {
+        $result[] = $val;
+      }
+      return $result;
+    }
+    return false;
+  }
+
   // The getTeams function returns an array of all active teams on the server.
   static function getTeams() {
     $result = array();
@@ -684,11 +718,29 @@ class ttTeamHelper {
       $record_type_v = '';
     }
 
-    $sql = "insert into tt_teams (name, address, currency $lockspec_f, lang $decimal_mark_f $date_format_f $time_format_f $week_start_f $plugins_f $tracking_mode_f $record_type_f)
+    $uncompleted_indicators = $fields['uncompleted_indicators'];
+    if ($uncompleted_indicators !== null) {
+      $uncompleted_indicators_f = ', uncompleted_indicators';
+      $uncompleted_indicators_v = ', ' . (int)$uncompleted_indicators;
+    } else {
+      $uncompleted_indicators_f = '';
+      $uncompleted_indicators_v = '';
+    }
+
+    $workday_hours = $fields['workday_hours'];
+    if ($workday_hours !== null) {
+      $workday_hours_f = ', workday_hours';
+      $workday_hours_v = ', ' . (int)$workday_hours;
+    } else {
+      $workday_hours_f = '';
+      $workday_hours_v = '';
+    }
+
+    $sql = "insert into tt_teams (name, address, currency $lockspec_f, lang $decimal_mark_f $date_format_f $time_format_f $week_start_f $plugins_f $tracking_mode_f $record_type_f $uncompleted_indicators_f $workday_hours_f)
       values(".$mdb2->quote(trim($fields['name'])).
       ", ".$mdb2->quote(trim($fields['address'])).
       ", ".$mdb2->quote(trim($fields['currency']))." $lockspec_v, ".$mdb2->quote($lang).
-      "$decimal_mark_v $date_format_v $time_format_v $week_start_v $plugins_v $tracking_mode_v $record_type_v)";
+      "$decimal_mark_v $date_format_v $time_format_v $week_start_v $plugins_v $tracking_mode_v $record_type_v $uncompleted_indicators_v $workday_hours_v)";
     $affected = $mdb2->exec($sql);
 
     if (!is_a($affected, 'PEAR_Error')) {
@@ -716,9 +768,10 @@ class ttTeamHelper {
     $week_start_part = '';
     $tracking_mode_part = '';
     $record_type_part = '';
+    $uncompleted_indicators_part = '';
     $plugins_part = '';
     $lock_spec_part = '';
-    $working_hours_part = '';
+    $workday_hours_part = '';
 
     if (isset($fields['address'])) $addr_part = ', address = '.$mdb2->quote($fields['address']);
     if (isset($fields['currency'])) $currency_part = ', currency = '.$mdb2->quote($fields['currency']);
@@ -729,13 +782,14 @@ class ttTeamHelper {
     if (isset($fields['week_start'])) $week_start_part = ', week_start = '.intval($fields['week_start']);
     if (isset($fields['tracking_mode'])) $tracking_mode_part = ', tracking_mode = '.intval($fields['tracking_mode']);
     if (isset($fields['record_type'])) $record_type_part = ', record_type = '.intval($fields['record_type']);
+    if (isset($fields['uncompleted_indicators'])) $uncompleted_indicators_part = ', uncompleted_indicators = '.intval($fields['uncompleted_indicators']);
     if (isset($fields['plugins'])) $plugins_part = ', plugins = '.$mdb2->quote($fields['plugins']);
     if (isset($fields['lock_spec'])) $lock_spec_part = ', lock_spec = '.$mdb2->quote($fields['lock_spec']);
-    if (isset($fields['working_hours'])) $working_hours_part = ', daily_working_hours = '.$mdb2->quote($fields['working_hours']);
+    if (isset($fields['workday_hours'])) $workday_hours_part = ', workday_hours = '.$mdb2->quote($fields['workday_hours']);
 
     $sql = "update tt_teams set $name_part $addr_part $currency_part $lang_part $decimal_mark_part
       $date_format_part $time_format_part $week_start_part $tracking_mode_part $record_type_part
-      $plugins_part $lock_spec_part $working_hours_part where id = $team_id";
+      $uncompleted_indicators_part $plugins_part $lock_spec_part $workday_hours_part where id = $team_id";
     $affected = $mdb2->exec($sql);
     if (is_a($affected, 'PEAR_Error')) return false;
 
@@ -760,7 +814,7 @@ class ttTeamHelper {
           $count++;
           $inactive_teams[] = $team_id;
           // Limit the array size for perfomance by allowing this operation on small chunks only.
-          if ($count >= 25) break;
+          if ($count >= 100) break;
         }
       }
       return $inactive_teams;