public static function run($dataDir = null) { $one_sec = 10000000; # microsecond * 10 $one_min = 60 * $one_sec; $one_hour = 60 * $one_min; # Instantiate project object $project = new Project($dataDir . 'test_tasks.mpp'); $tsk = new Tsk(); $prj = new Prj(); # Add tasks $task1 = $project->getRootTask()->getChildren()->add("1"); $timeUnitType = new TimeUnitType(); $task1->set($tsk->DURATION, $project->getDuration(8, $timeUnitType->Hour)); $task1->set($tsk->START, $project->get($prj->START_DATE)); $task1->set($tsk->FINISH, $project->get($prj->CALENDAR)->getTaskFinishDateFromDuration($task1, (double) (string) $task1->get($tsk->DURATION))); //.toDouble() $task2 = $project->getRootTask()->getChildren()->add("2"); $task2->set($tsk->DURATION, $project->getDuration(8, $timeUnitType->Hour)); $task2->set($tsk->START, $project->get($prj->START_DATE)); $task2->set($tsk->FINISH, $project->get($prj->CALENDAR)->getTaskFinishDateFromDuration($task2, (double) (string) $task2->get($tsk->DURATION))); //.toDouble() $project->getRootTask()->getChildren()->add($task1); $project->getRootTask()->getChildren()->add($task2); # Add four TaskLinks with different TaskLinkTypes $taskLinkType = new TaskLinkType(); $link1 = $project->getTaskLinks()->add($task1, $task2, $taskLinkType->StartToStart); # Save the Project $saveFileFormat = new SaveFileFormat(); $project->save($dataDir . "TaskLinks.mpp", $saveFileFormat->MPP); print "Saved task links data." . PHP_EOL; }
public static function run($dataDir = null) { # Instantiate project object $project = new Project(); print $project->getCalculationMode(); $task = $project->getRootTask()->getChildren()->add("Task"); $tsk = new Tsk(); $task->set($tsk->DURATION, $project->getDuration(2)); $task->set($tsk->PERCENT_COMPLETE, 50); print "Changed progress of task." . PHP_EOL; }
public static function run($dataDir = null) { # Instantiate project object $project = new Project(); $prj = new Prj(); $tsk = new Tsk(); # Get a standard calendar $calendar = $project->get($prj->CALENDAR); # Set project's calendar settings $cal = new Calendar(); $cal = $cal->getInstance(); $cal->set(2011, 3, 15, 8, 0, 0); $project->set($prj->START_DATE, $cal->getTime()); $cal->set(2011, 3, 21, 17, 0, 0); $project->set($prj->FINISH_DATE, $cal->getTime()); # root task $rootTask = $project->getRootTask(); $rootTask->set($tsk->NAME, "Root"); # Add a new task $taskToSplit = $rootTask->getChildren()->add("Task1"); $taskToSplit->set($tsk->DURATION, $project->getDuration(3)); # Create a new resource assignment $splitResourceAssignment = $project->getResourceAssignments()->add($taskToSplit, null); # Generate resource assignment timephased data $splitResourceAssignment->timephasedDataFromTaskDuration($calendar); # Split the task into 3 parts. # Provide start date and finish date arguments to SplitTask method # These dates will be used for split # Set project's calendar settings $cal = new Calendar(); $cal = $cal->getInstance(); $cal2 = new Calendar(); $cal2 = $cal2->getInstance(); $cal->set(2011, 3, 16, 8, 0, 0); $cal2->set(2011, 3, 16, 17, 0, 0); $splitResourceAssignment->splitTask($cal->getTime(), $cal2->getTime(), $calendar); $cal->set(2011, 3, 18, 8, 0, 0); $cal2->set(2011, 3, 18, 17, 0, 0); $splitResourceAssignment->splitTask($cal->getTime(), $cal2->getTime(), $calendar); $asn = new Asn(); $workContourType = new WorkContourType(); $splitResourceAssignment->set($asn->WORK_CONTOUR, $workContourType->Contoured); # Save the Project $saveFileFormat = new SaveFileFormat(); $project->save($dataDir . "SplitTasks.xml", $saveFileFormat->XML); }
public static function run($dataDir = null) { # Instantiate project object $project = new Project($dataDir . 'test_tasks.mpp'); $prj = new Prj(); $tsk = new Tsk(); $cal = new Calendar(); $cal = $cal->getInstance(); $cal->set(2013, 7, 17, 8, 0, 0); $project->set($prj->START_DATE, $cal->getTime()); $project->set($prj->NEW_TASKS_ARE_MANUAL, new NullableBool(false)); $task = $project->getRootTask()->getChildren()->add("Task"); $rsc = $project->getResources()->add("Rsc"); $rscc = new Rsc(); $bigDecimal = new BigDecimal(); $rsc->set($rscc->STANDARD_RATE, $bigDecimal->valueOf(10)); $rsc->set($rscc->OVERTIME_RATE, $bigDecimal->valueOf(15)); # 6 days duration $task->set($tsk->DURATION, $project->getDuration(6)); $assn = $project->getResourceAssignments()->add($task, $rsc); $d = new Date(0); $asnn = new Asn(); $assn->set($asnn->STOP, new Date(0)); $assn->set($asnn->RESUME, new Date(0)); # backloaded contour increases task duration from 6 to 10 days $workContourType = new WorkContourType(); $assn->set($asnn->WORK_CONTOUR, $workContourType->BackLoaded); $baselineType = new BaselineType(); $project->setBaseline($baselineType->Baseline); $task->set($tsk->PERCENT_COMPLETE, 50); $timephasedDataType = new TimephasedDataType(); $td = $assn->getTimephasedData($assn->get($asnn->START), $assn->get($asnn->FINISH), $timephasedDataType->AssignmentRemainingWork)->toList(); print "Size: " . (string) $td->size() . PHP_EOL; //.to_s print "Value: " . (string) $td->get(0)->getValue() . PHP_EOL; //.to_s }