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($dataDir . 'Sample.xml');
     # Display project version property
     $prj = new Prj();
     print "Project Version : " . (string) $project->get($prj->SAVE_VERSION) . PHP_EOL;
     //->to_string
     print "Last Saved : " . (string) $project->get($prj->LAST_SAVED) . PHP_EOL;
 }
 public static function get_fiscal_year_properties($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     $prj = new Prj();
     # Display fiscal year properties
     print "Fiscal Year Start Date : " . (string) $project->get($prj->FY_START_DATE) . PHP_EOL;
     //.toString();
     print "Fiscal Year Numbering : " . (string) $project->get($prj->FISCAL_YEAR_START) . PHP_EOL;
     //.toString()
 }
 public static function get_currency_properties($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     $prj = new Prj();
     # Display currency properties
     print "Currency Code : " . (string) $project->get($prj->CURRENCY_CODE) . PHP_EOL;
     //.toString()
     print "<br>Currency Digits : " . (string) $project->get($prj->CURRENCY_DIGITS) . PHP_EOL;
     //.toString()
     print "<br>Currency Symbol : " . (string) $project->get($prj->CURRENCY_SYMBOL) . PHP_EOL;
     //.toString()
     print "Currency Symbol Position: " . (string) $project->get($prj->CURRENCY_SYMBOL_POSITION) . PHP_EOL;
     //.toString()
 }
 public static function get_weekday_properties($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     $prj = new Prj();
     # Display week days properties
     print "Week Start Date : " . (string) $project->get($prj->WEEK_START_DAY) . PHP_EOL;
     //.toString();
     print "Days Per Month : " . (string) $project->get($prj->DAYS_PER_MONTH) . PHP_EOL;
     //.toString();
     print "Minutes Per Day : " . (string) $project->get($prj->MINUTES_PER_DAY) . PHP_EOL;
     //.toString();
     print "Minutes Per Week : " . (string) $project->get($prj->MINUTES_PER_WEEK) . PHP_EOL;
     //.toString();
 }
 public static function get_currency_digits($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     $prj = new Prj();
     print "Currency Digits: " . (string) $project->get($prj->CURRENCY_DIGITS) . PHP_EOL;
     //.to_string
 }
 public static function get_currency_symbol($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     $prj = new Prj();
     print "Currency Symbol: " . (string) $project->get($prj->CURRENCY_SYMBOL) . PHP_EOL;
     //.to_string
 }
 public static function run($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'test_tasks.mpp');
     # Get the Resource by its ID
     $resource = $project->getResources()->getByUid(1);
     $prj = new Prj();
     # Print Timephased data of ResourceWork
     print "Timephased data of Resource Work" . PHP_EOL;
     $result = $resource->getTimephasedData($project->get($prj->START_DATE), $project->get($prj->FINISH_DATE))->toList();
     $i = 0;
     while ($i < sizeof($result)) {
         $td = $result->get($i);
         print "Start: " . (string) $td->getStart() . PHP_EOL;
         // . toString()
         print "Work: " . (string) $td->getValue() . PHP_EOL;
         $i += 1;
     }
 }
 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 get_default_project_properties($dataDir = null)
 {
     # Instantiate project object
     $project = new Project($dataDir . 'Sample.xml');
     $prj = new Prj();
     # Display default properties
     print "Project Version : " . (string) $project->get($prj->SAVE_VERSION) . PHP_EOL;
     //.to_string
     print "New Task Default Start: " . (string) $project->get($prj->DEFAULT_START_TIME) . PHP_EOL;
     //.to_string
     print "New Task Default Type: " . (string) $project->get($prj->DEFAULT_TASK_TYPE) . PHP_EOL;
     //.to_string
     print "Resouce Default Standard Rate: " . (string) $project->get($prj->DEFAULT_STANDARD_RATE) . PHP_EOL;
     //.to_string
     print "Resource Default Overtime Rate: " . (string) $project->get($prj->DEFAULT_OVERTIME_RATE) . PHP_EOL;
     //.to_string
     print "Default Task EV Method: " . (string) $project->get($prj->DEFAULT_TASK_EV_METHOD) . PHP_EOL;
     //.to_string
     print "Default Cost Accrual: " . (string) $project->get($prj->DEFAULT_FIXED_COST_ACCRUAL) . PHP_EOL;
     //.to_string
 }