コード例 #1
0
 /**
  * Marka milestone as finished
  *
  * @param int $id Milestone ID
  * @return bool
  */
 function close($id)
 {
     $id = (int) $id;
     $upd = mysql_query("UPDATE milestones SET status = 0 WHERE ID = {$id}");
     $tasklists = $this->getMilestoneTasklists($id);
     if (!empty($tasklists)) {
         foreach ($tasklists as $tasklist) {
             $tl = new tasklist();
             $tasks = $tl->getTasksFromList($tasklist[ID]);
             foreach ($tasks as $task) {
                 $close_task = mysql_query("UPDATE tasks SET status = 0 WHERE ID = {$task['ID']}");
             }
             $close_tasklist = mysql_query("UPDATE tasklist SET status = 0 WHERE ID = {$tasklist['ID']}");
         }
     }
     if ($upd) {
         $nam = mysql_query("SELECT project,name FROM milestones WHERE ID = {$id}");
         $nam = mysql_fetch_row($nam);
         $project = $nam[0];
         $name = $nam[1];
         $this->mylog->add($name, 'milestone', 5, $project);
         return true;
     } else {
         return false;
     }
 }
コード例 #2
0
 /**
  * Copy a project
  * by: Daniel Tlach <*****@*****.**>,
  * Philipp Kiszka <*****@*****.**>
  *
  * @param int $id ID of project to copy
  * @return int $insid New project's ID
  */
 function makecopy($id)
 {
     // copy project
     $q = mysql_query("INSERT INTO projekte (`name`, `desc`, `end`, `start`, `status`, `budget`) SELECT `name`, `desc`, `end`, `start`, `status`, `budget` FROM projekte WHERE ID = " . (int) $id);
     $insid = mysql_insert_id();
     $uid = $_SESSION['userid'];
     $this->assign($uid, $insid);
     $milesobj = new milestone();
     $objtasklist = new tasklist();
     $objtask = new task();
     if ($q) {
         $pname = $this->getProject($insid);
         $name = $pname["name"] . " Copy";
         mysql_query("UPDATE projekte SET `name` = '{$name}' WHERE ID = " . $insid . " LIMIT 1");
         // now copy the milestones
         $miles = $milesobj->getAllProjectMilestones($id);
         if (!empty($miles)) {
             // go through the milestones
             foreach ($miles as $ms) {
                 // copy milestone
                 $msid = $milesobj->add($insid, $ms["name"], $ms["desc"], $ms["end"], 1);
                 // get all tasklists for milestone
                 $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = {$ms['ID']}");
                 if ($qb) {
                     // go through the tasklists
                     while ($tl = mysql_fetch_array($qb)) {
                         // copy tasklist
                         $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid);
                         // get tasks for the tasklist
                         $tasks = $objtasklist->getTasksFromList($tl["ID"]);
                         if (!empty($tasks)) {
                             foreach ($tasks as $task) {
                                 $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid);
                             }
                             // tasks END
                         }
                     }
                     // tasklists END
                 }
             }
             // milestones END
         }
         // get all tasklists and tasks that do not belong to a milestone
         $qb = mysql_query("SELECT * FROM tasklist WHERE project = {$id} AND milestone = 0");
         if ($qb) {
             // go through the tasklists
             while ($tl = mysql_fetch_array($qb)) {
                 // copy tasklist
                 $tlid = $objtasklist->add_liste($insid, $tl["name"], $tl["desc"], 0, $msid);
                 // get tasks for the tasklist
                 $tasks = $objtasklist->getTasksFromList($tl["ID"]);
                 if (!empty($tasks)) {
                     foreach ($tasks as $task) {
                         $taskobj->add($task["end"], $task["title"], $task["text"], $tlid, $uid, $insid);
                     }
                     // tasks END
                 }
             }
             // tasklists END
         }
         mkdir(CL_ROOT . "/files/" . CL_CONFIG . "/{$insid}/", 0777);
         $this->mylog->add($name, 'projekt', 1, $insid);
         return $insid;
     } else {
         return false;
     }
 }