$result = process_sql ($sql); if ($id_task !=0) { // Old old association process_sql ("DELETE FROM tworkunit_task WHERE id_workunit = $id_workunit"); // Create new one $sql = sprintf ('INSERT INTO tworkunit_task (id_task, id_workunit) VALUES (%d, %d)', $id_task, $id_workunit); $result = process_sql ($sql, 'insert_id'); } $result_output = ui_print_success_message (__('Workunit updated'), '', true, 'h3', true); audit_db ($config["id_user"], $config["REMOTE_ADDR"], "PWU", "Updated PWU. $description"); if ($result !== false) { set_task_completion ($id_task); } } $multiple_wu_report = array(); if ($operation == 'multiple_wu_insert') { //Walk post array looking for $i = 1; while(true) { if (!get_parameter("start_date_".$i)) { break; }
function create_single_workunit($number) { global $config; $duration = (double) get_parameter("duration_" . $number); $timestamp = (string) get_parameter("start_date_" . $number); $description = (string) get_parameter("description_" . $number); $have_cost = (bool) get_parameter("have_cost_" . $number); $id_task = (int) get_parameter("id_task_" . $number, -1); $id_profile = (int) get_parameter("id_profile_" . $number); $public = (bool) get_parameter("public_" . $number); $split = (bool) get_parameter("split_" . $number); $id_user = (string) get_parameter("id_username_" . $number, $config['id_user']); $wu_user = $id_user; $forward = (bool) get_parameter("forward_" . $number); $work_home = (bool) get_parameter("work_home_" . $number); // Multi-day assigment if ($split && $duration > $config["hours_perday"]) { $total_days = ceil($duration / $config["hours_perday"]); $total_days_sum = 0; $hours_day = 0; for ($i = 0; $i < $total_days; $i++) { if (!$forward) { $current_timestamp = calcdate_business_prev($timestamp, $i); } else { $current_timestamp = calcdate_business($timestamp, $i); } if ($total_days_sum + 8 > $duration) { $hours_day = $duration - $total_days_sum; } else { $hours_day = $config["hours_perday"]; } $total_days_sum += $hours_day; $sql = sprintf('INSERT INTO tworkunit (timestamp, duration, id_user, description, have_cost, id_profile, public, work_home) VALUES ("%s", %f, "%s", "%s", %d, %d, %d, %d)', $current_timestamp, $hours_day, $id_user, $description, $have_cost, $id_profile, $public, $work_home); $id_workunit = process_sql($sql, 'insert_id'); if ($id_workunit !== false) { $sql = sprintf('INSERT INTO tworkunit_task (id_task, id_workunit) VALUES (%d, %d)', $id_task, $id_workunit); $result = process_sql($sql, 'insert_id'); if ($result !== false) { $result_output = true; } else { $result_output = false; } } else { $result_output = false; } } mail_project(0, $config['id_user'], $id_workunit, $id_task, "This is part of a multi-workunit assigment of {$duration} hours"); } else { // Single day workunit $sql = sprintf('INSERT INTO tworkunit (timestamp, duration, id_user, description, have_cost, id_profile, public, work_home) VALUES ("%s", %.2f, "%s", "%s", %d, %d, %d, %d)', $timestamp, $duration, $id_user, $description, $have_cost, $id_profile, $public, $work_home); $id_workunit = process_sql($sql, 'insert_id'); if ($id_workunit !== false) { $sql = sprintf('INSERT INTO tworkunit_task (id_task, id_workunit) VALUES (%d, %d)', $id_task, $id_workunit); $result = process_sql($sql, 'insert_id'); if ($result !== false) { $result_output = true; audit_db($config['id_user'], $config["REMOTE_ADDR"], "Spare work unit added", 'Workunit for ' . $config['id_user'] . ' added to Task ID #' . $id_task); mail_project(0, $config['id_user'], $id_workunit, $id_task); } else { $result_output = false; } } else { $result_output = false; } } if ($id_workunit !== false) { set_task_completion($id_task); } audit_db($config["id_user"], $config["REMOTE_ADDR"], "PWU INSERT", "Task {$id_task}. Desc: {$description}"); $return = array("task" => $id_task, "date" => $timestamp, "role" => $id_profile, "cost" => $have_cost, "public" => $public, "user" => $id_user, "duration" => $duration, "split" => $split, "forward" => $forward, "description" => $description, "result_out" => $result_output, "work_home" => $work_home); return $return; }
public function deleteWorkUnit ($id_workunit) { $result = process_sql ("DELETE FROM tworkunit WHERE id = ".$id_workunit); if ($result) { $id_task = get_db_value("id_task", "tworkunit_task", "id_workunit", $id_workunit); $id_incident = get_db_value("id_incident", "tworkunit_incident", "id_workunit", $id_workunit); if ($id_task) { $result = process_sql ("DELETE FROM tworkunit_task WHERE id_workunit = ".$id_workunit); if ($result) { $system = System::getInstance(); include_once ($system->getConfig('homedir')."/include/functions_tasks.php"); set_task_completion ($this->id_task); return true; } } elseif ($id_incident) { $result = process_sql ("DELETE FROM tworkunit_incident WHERE id_workunit = ".$id_workunit); if ($result) { return true; } } else { return true; } } return false; }
} //Update task links $links_0 = get_parameter("links_0"); $links_1 = get_parameter("links_1"); $links_2 = get_parameter("links_2"); projects_update_task_links($id_task, $links_0, 0); projects_update_task_links($id_task, $links_1, 1); projects_update_task_links($id_task, $links_2, 2); if ($result !== false) { $result_output = '<h3 class="suc">' . __('Successfully updated') . '</h3>'; audit_db($config['id_user'], $config["REMOTE_ADDR"], "Task updated", "Task '{$name}' updated to project '{$id_project}'"); $operation = "view"; task_tracking($id_task, TASK_UPDATED); // ONLY recalculate the complete if count hours flag is activated if ($count_hours) { $hours = set_task_completion($id_task); } } else { $result_output = "<h3 class='error'>" . __('Could not be updated') . "</h3>"; } if ($gantt_editor) { echo $result_output; exit; } } // Edition / View mode if ($operation == "view") { $task = get_db_row('ttask', 'id', $id_task); // Get values $name = $task['name']; $description = $task['description'];