Exemplo n.º 1
0
	$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;
		} 
		
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
	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;
	}
Exemplo n.º 4
0
    }
    //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'];