Another fix in week view for negative hours.
[timetracker.git] / WEB-INF / lib / ttTaskHelper.class.php
index 2bb99da..0156740 100644 (file)
@@ -35,9 +35,11 @@ class ttTaskHelper {
     global $user;
  
     $mdb2 = getConnection();
+    $group_id = $user->getGroup();
+    $org_id = $user->org_id;
 
     $sql = "select id, name, description, status from tt_tasks
-      where id = $id and team_id = $user->team_id and (status = 0 or status = 1)";
+      where id = $id and group_id = $group_id and org_id = $org_id and (status = 0 or status = 1)";
     $res = $mdb2->query($sql);
 
     if (!is_a($res, 'PEAR_Error')) {
@@ -53,15 +55,17 @@ class ttTaskHelper {
   // getAssignedProjects - returns an array of projects associatied with a task.
   static function getAssignedProjects($task_id)
   {
-       global $user;
+    global $user;
        
     $result = array();
     $mdb2 = getConnection();
+    $group_id = $user->getGroup();
+    $org_id = $user->org_id;
     
     // Do a query with inner join to get assigned projects.
     $sql = "select p.id, p.name from tt_projects p
       inner join tt_project_task_binds ptb on (ptb.project_id = p.id and ptb.task_id = $task_id)
-      where p.team_id = $user->team_id and p.status = 1 order by p.name";
+      where p.group_id = $group_id and p.org_id = $org_id and p.status = 1 order by p.name";
     $res = $mdb2->query($sql);
     if (!is_a($res, 'PEAR_Error')) {
       while ($val = $res->fetchRow()) {
@@ -77,7 +81,7 @@ class ttTaskHelper {
     $mdb2 = getConnection();
     global $user;
 
-    $sql = "select id from tt_tasks where team_id = $user->team_id and name = ".
+    $sql = "select id from tt_tasks where group_id = $user->group_id and name = ".
       $mdb2->quote($task_name)." and (status = 1 or status = 0)";
       $res = $mdb2->query($sql);
 
@@ -103,7 +107,7 @@ class ttTaskHelper {
         
     // Delete project binds to this task from the tasks field in tt_projects table.
     // Get projects where tasks is not NULL.
-    $sql = "select id, tasks from tt_projects where team_id = $user->team_id and tasks is not NULL";
+    $sql = "select id, tasks from tt_projects where group_id = $user->group_id and tasks is not NULL";
     $res = $mdb2->query($sql);
     if (is_a($res, 'PEAR_Error'))
       return false;
@@ -133,35 +137,35 @@ class ttTaskHelper {
  // insert function inserts a new task into database.
   static function insert($fields)
   {
+    global $user;
     $mdb2 = getConnection();
 
-    $team_id = (int) $fields['team_id'];
+    $group_id = $user->getGroup();
+    $org_id = $user->org_id;
     $name = $fields['name'];
     $description = $fields['description'];
     $projects = $fields['projects'];
     $status = $fields['status'];
         
-    $sql = "insert into tt_tasks (team_id, name, description, status)
-      values ($team_id, ".$mdb2->quote($name).", ".$mdb2->quote($description).", ".$mdb2->quote($status).")";
+    $sql = "insert into tt_tasks (group_id, org_id, name, description, status)
+      values ($group_id, $org_id, ".$mdb2->quote($name).", ".$mdb2->quote($description).", ".$mdb2->quote($status).")";
     $affected = $mdb2->exec($sql);
     $last_id = 0;
     if (is_a($affected, 'PEAR_Error'))
       return false;
 
-    $sql = "select last_insert_id() as last_insert_id";
-    $res = $mdb2->query($sql);
-    $val = $res->fetchRow();
-    $last_id = $val['last_insert_id'];
-    
+    $last_id = $mdb2->lastInsertID('tt_tasks', 'id');
+
     if (is_array($projects)) {
       foreach ($projects as $p_id) {
         // Insert task binds into tt_project_task_binds table.
-        $sql = "insert into tt_project_task_binds (project_id, task_id) values($p_id, $last_id)";
+        $sql = "insert into tt_project_task_binds (project_id, task_id, group_id, org_id)".
+          " values($p_id, $last_id, $group_id, $org_id)";
         $affected = $mdb2->exec($sql);
-               if (is_a($affected, 'PEAR_Error'))
-                 return false;
+        if (is_a($affected, 'PEAR_Error'))
+          return false;
 
-               // Add task bind to the tasks field of the tt_projects table.
+        // Add task bind to the tasks field of the tt_projects table.
         $sql = "select tasks from tt_projects where id = $p_id";
         $res = $mdb2->query($sql);
         if (is_a($res, 'PEAR_Error'))
@@ -170,27 +174,28 @@ class ttTaskHelper {
         $val = $res->fetchRow();
         $task_ids = $val['tasks'];
         if ($task_ids) {
-                 $task_ids .= ",$last_id";
-                 $task_ids = ttTaskHelper::sort($task_ids);
-               } else
-                 $task_ids = $last_id;
+          $task_ids .= ",$last_id";
+          $task_ids = ttTaskHelper::sort($task_ids);
+        } else
+          $task_ids = $last_id;
 
         $sql = "update tt_projects set tasks = ".$mdb2->quote($task_ids)." where id = $p_id";
         $affected = $mdb2->exec($sql);
         if (is_a($affected, 'PEAR_Error'))
           return false;
-         }
+      }
     }
     return $last_id;
   }
  
- // update function updates a task in the database.
 // update function updates a task in the database.
   static function update($fields)
   {
     global $user;
-           
     $mdb2 = getConnection();
 
+    $group_id = $user->getGroup();
+    $org_id = $user->org_id;
     $task_id = (int)$fields['task_id'];
     $name = $fields['name'];
     $description = $fields['description'];
@@ -198,7 +203,7 @@ class ttTaskHelper {
     $projects = $fields['projects'];
 
     $sql = "update tt_tasks set name = ".$mdb2->quote($name).", description = ".$mdb2->quote($description).
-      ", status = $status where id = $task_id";
+      ", status = $status where id = $task_id and group_id = $group_id";
     $affected = $mdb2->exec($sql);
     if (is_a($affected, 'PEAR_Error'))
       die($affected->getMessage());
@@ -210,7 +215,8 @@ class ttTaskHelper {
       die($affected->getMessage());
     if (count($projects) > 0)
       foreach ($projects as $p_id) {
-        $sql = "insert into tt_project_task_binds (project_id, task_id) values($p_id, $task_id)";
+        $sql = "insert into tt_project_task_binds (project_id, task_id, group_id, org_id)".
+          " values($p_id, $task_id, $group_id, $org_id)";
         $affected = $mdb2->exec($sql);
         if (is_a($affected, 'PEAR_Error'))
           die($affected->getMessage());
@@ -219,8 +225,8 @@ class ttTaskHelper {
     // Handle task binds in the tasks field of the tt_projects table.
     // We need to either delete or insert task id in all affected projects.
     
-    // Get all not deleted projects for team.
-    $sql = "select id, tasks from tt_projects where team_id = $user->team_id and status is not NULL";
+    // Get all not deleted projects for group.
+    $sql = "select id, tasks from tt_projects where group_id = $group_id and status is not NULL";
     $res = $mdb2->query($sql);
     if (is_a($res, 'PEAR_Error'))
       die($res->getMessage());
@@ -237,14 +243,14 @@ class ttTaskHelper {
          if ($task_ids) {
             $task_ids .= ",$task_id";
             $task_ids = ttTaskHelper::sort($task_ids);
-                 } else
-                       $task_ids = $task_id;
+        } else
+          $task_ids = $task_id;
 
-                $sql = "update tt_projects set tasks = ".$mdb2->quote($task_ids)." where id = $project_id";
-                $affected = $mdb2->exec($sql);
-                if (is_a($affected, 'PEAR_Error'))
-           die($affected->getMessage());
-               }
+        $sql = "update tt_projects set tasks = ".$mdb2->quote($task_ids)." where id = $project_id";
+        $affected = $mdb2->exec($sql);
+        if (is_a($affected, 'PEAR_Error'))
+          die($affected->getMessage());
+        }
       } else {
        // Task needs to be removed from this project.
         if (in_array($task_id, $task_arr)) {
@@ -265,17 +271,17 @@ class ttTaskHelper {
 
   // sort function sorts task ids passed as comma-separated list by their name.
   static function sort($comma_separated) {
-       // We can't sort an empty string.
-       if (!$comma_separated)
-         return $comma_separated;
-                 
+    // We can't sort an empty string.
+    if (!$comma_separated)
+      return $comma_separated;
+
     $mdb2 = getConnection();
-      
-       $sql = "select id, name from tt_tasks where id in ($comma_separated)";
+
+    $sql = "select id, name from tt_tasks where id in ($comma_separated)";
     $res = $mdb2->query($sql);
     if (is_a($res, 'PEAR_Error'))
       die ($res->getMessage());
-    
+
     $task_arr = array();
     while ($val = $res->fetchRow()) {
       $task_arr[] = array('id'=>$val['id'],'name'=>$val['name']);
@@ -285,7 +291,7 @@ class ttTaskHelper {
     for($i = 0; $i < count($task_arr); $i++) {
          $task_ids[] = $task_arr[$i]['id'];
     }
-       $result = implode(',', $task_ids);
+    $result = implode(',', $task_ids);
     return $result;
   }
 }