Fixed a database error when inserting entries - recently introduced bug.
[timetracker.git] / WEB-INF / lib / ttTeamHelper.class.php
index 3804b52..6127123 100644 (file)
@@ -500,6 +500,9 @@ class ttTeamHelper {
 
   // getPredefinedExpenses - obtains predefined expenses for team.
   static function getPredefinedExpenses($team_id) {
+    global $user;
+    $replaceDecimalMark = ('.' != $user->decimal_mark);
+
     $mdb2 = getConnection();
 
     $result = array();
@@ -508,6 +511,8 @@ class ttTeamHelper {
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
       while ($val = $res->fetchRow()) {
+        if ($replaceDecimalMark)
+          $val['cost'] = str_replace('.', $user->decimal_mark, $val['cost']);
         $result[] = $val;
       }
       return $result;
@@ -520,9 +525,9 @@ class ttTeamHelper {
     $mdb2 = getConnection();
 
     $result = array();
-    $sql = "select c.id, c.cron_spec, c.email, fr.name from tt_cron c
+    $sql = "select c.id, c.cron_spec, c.email, c.report_condition, fr.name from tt_cron c
       left join tt_fav_reports fr on (fr.id = c.report_id)
-      where c.team_id = $team_id and c.status is not null";
+      where c.team_id = $team_id and c.status = 1 and fr.status = 1";
     $res = $mdb2->query($sql);
     $result = array();
     if (!is_a($res, 'PEAR_Error')) {
@@ -631,21 +636,6 @@ class ttTeamHelper {
 
     $mdb2 = getConnection();
 
-    $lock_spec = $fields['lock_spec'];
-    if ($lock_spec !== null) {
-      $lockspec_f = ', lock_spec';
-      $lockspec_v = ', ' . $mdb2->quote($lock_spec);
-    } else {
-      $lockspec_f = '';
-      $lockspec_v = '';
-    }
-
-    $lang = $fields['lang'];
-    if (!$lang) {
-      global $i18n;
-      $lang = $i18n->lang;
-    }
-
     $decimal_mark = $fields['decimal_mark'];
     if ($decimal_mark !== null) {
       $decimal_mark_f = ', decimal_mark';
@@ -655,6 +645,12 @@ class ttTeamHelper {
       $decimal_mark_v = '';
     }
 
+    $lang = $fields['lang'];
+    if (!$lang) {
+      global $i18n;
+      $lang = $i18n->lang;
+    }
+
     $date_format = $fields['date_format'];
     if ($date_format !== null) {
       $date_format_f = ', date_format';
@@ -691,15 +687,6 @@ class ttTeamHelper {
       $week_start_v = '';
     }
 
-    $plugins = $fields['plugins'];
-    if ($plugins !== null) {
-      $plugins_f = ', plugins';
-      $plugins_v = ', ' . $mdb2->quote($plugins);
-    } else {
-      $plugins_f = '';
-      $plugins_v = '';
-    }
-
     $tracking_mode = $fields['tracking_mode'];
     if ($tracking_mode !== null) {
       $tracking_mode_f = ', tracking_mode';
@@ -709,6 +696,15 @@ class ttTeamHelper {
       $tracking_mode_v = '';
     }
 
+    $project_required = $fields['project_required'];
+    if ($project_required !== null) {
+      $project_required_f = ', project_required';
+      $project_required_v = ', ' . (int)$project_required;
+    } else {
+      $project_required_f = '';
+      $project_required_v = '';
+    }
+
     $task_required = $fields['task_required'];
     if ($task_required !== null) {
       $task_required_f = ', task_required';
@@ -736,6 +732,33 @@ class ttTeamHelper {
       $uncompleted_indicators_v = '';
     }
 
+    $bcc_email = $fields['bcc_email'];
+    if ($bcc_email !== null) {
+      $bcc_email_f = ', bcc_email';
+      $bcc_email_v = ', ' . $mdb2->quote($bcc_email);
+    } else {
+      $bcc_email_f = '';
+      $bcc_email_v = '';
+    }
+
+    $plugins = $fields['plugins'];
+    if ($plugins !== null) {
+      $plugins_f = ', plugins';
+      $plugins_v = ', ' . $mdb2->quote($plugins);
+    } else {
+      $plugins_f = '';
+      $plugins_v = '';
+    }
+
+    $lock_spec = $fields['lock_spec'];
+    if ($lock_spec !== null) {
+      $lockspec_f = ', lock_spec';
+      $lockspec_v = ', ' . $mdb2->quote($lock_spec);
+    } else {
+      $lockspec_f = '';
+      $lockspec_v = '';
+    }
+
     $workday_hours = $fields['workday_hours'];
     if ($workday_hours !== null) {
       $workday_hours_f = ', workday_hours';
@@ -745,11 +768,10 @@ class ttTeamHelper {
       $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 $task_required_f $record_type_f $uncompleted_indicators_f $workday_hours_f)
+    $sql = "insert into tt_teams (name, currency $decimal_mark_f, lang $date_format_f $time_format_f $week_start_f $tracking_mode_f $project_required_f $task_required_f $record_type_f $uncompleted_indicators_f $bcc_email_f $plugins_f $lockspec_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 $task_required_v $record_type_v $uncompleted_indicators_v $workday_hours_v)";
+      ", ".$mdb2->quote(trim($fields['currency']))." $decimal_mark_v, ".$mdb2->quote($lang).
+      "$date_format_v $time_format_v $week_start_v $tracking_mode_v $project_required_v $task_required_v $record_type_v $uncompleted_indicators_v $bcc_email_v $plugins_v $lockspec_v $workday_hours_v)";
     $affected = $mdb2->exec($sql);
 
     if (!is_a($affected, 'PEAR_Error')) {
@@ -766,21 +788,20 @@ class ttTeamHelper {
     $mdb2 = getConnection();
     $name_part = 'name = '.$mdb2->quote($fields['name']);
     $currency_part = '';
-    $addr_part = '';
     $lang_part = '';
     $decimal_mark_part = '';
     $date_format_part = '';
     $time_format_part = '';
     $week_start_part = '';
     $tracking_mode_part = '';
-    $task_required_part = ' , task_required = '.$mdb2->quote($fields['task_required']);
+    $task_required_part = ' , task_required = '.intval($fields['task_required']);
     $record_type_part = '';
     $uncompleted_indicators_part = '';
+    $bcc_email_part = '';
     $plugins_part = '';
     $lock_spec_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']);
     if (isset($fields['lang'])) $lang_part = ', lang = '.$mdb2->quote($fields['lang']);
     if (isset($fields['decimal_mark'])) $decimal_mark_part = ', decimal_mark = '.$mdb2->quote($fields['decimal_mark']);
@@ -790,26 +811,28 @@ class ttTeamHelper {
     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 (!empty($fields['bcc_email'])) $bcc_email_part = ', bcc_email = '.$mdb2->quote($fields['bcc_email']);
     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['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
+    $sql = "update tt_teams set $name_part $currency_part $lang_part $decimal_mark_part
       $date_format_part $time_format_part $week_start_part $tracking_mode_part $task_required_part $record_type_part
-      $uncompleted_indicators_part $plugins_part $lock_spec_part $workday_hours_part where id = $team_id";
+      $uncompleted_indicators_part $bcc_email_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;
 
     return true;
   }
 
-  // The getInactiveTeams is a maintenance function that returns an array of inactive team ids (max 25).
+  // The getInactiveTeams is a maintenance function that returns an array of inactive team ids (max 100).
   static function getInactiveTeams() {
     $inactive_teams = array();
     $mdb2 = getConnection();
 
-    // Get all team ids for teams created or modified more than 1 year ago.
-    $ts = date('Y-m-d', strtotime('-1 year'));
+    // Get all team ids for teams created or modified more than 6 months ago.
+    // $ts = date('Y-m-d', strtotime('-1 year'));
+    $ts = date('Y-m-d', strtotime('-6 month'));
     $sql =  "select id from tt_teams where timestamp < '$ts' order by id";
     $res = $mdb2->query($sql);