/** * 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; } }
/** * 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; } }