Fixed predefined expenses logic for comma as decimal mark.
[timetracker.git] / WEB-INF / lib / ttTeamHelper.class.php
index 2f0c7cc..6f716f5 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')) {
@@ -709,6 +714,15 @@ class ttTeamHelper {
       $tracking_mode_v = '';
     }
 
+    $task_required = $fields['task_required'];
+    if ($task_required !== null) {
+      $task_required_f = ', task_required';
+      $task_required_v = ', ' . (int)$task_required;
+    } else {
+      $task_required_f = '';
+      $task_required_v = '';
+    }
+
     $record_type = $fields['record_type'];
     if ($record_type !== null) {
       $record_type_f = ', record_type';
@@ -736,11 +750,11 @@ 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 $record_type_f $uncompleted_indicators_f $workday_hours_f)
+    $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)
       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 $uncompleted_indicators_v $workday_hours_v)";
+      "$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)";
     $affected = $mdb2->exec($sql);
 
     if (!is_a($affected, 'PEAR_Error')) {
@@ -764,9 +778,10 @@ class ttTeamHelper {
     $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 = '';
@@ -781,26 +796,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
       $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 50).
   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);
 
@@ -812,7 +829,7 @@ class ttTeamHelper {
           $count++;
           $inactive_teams[] = $team_id;
           // Limit the array size for perfomance by allowing this operation on small chunks only.
-          if ($count >= 100) break;
+          if ($count >= 50) break;
         }
       }
       return $inactive_teams;