Esempio n. 1
0
 /**
  * Resource Assignment
  * @param array $record
  */
 private function readRecord75(array $record)
 {
     // 0 : Record
     // 1 : ID
     $idResource = null;
     if (isset($record[1]) && !empty($record[1])) {
         $idResource = $record[1];
     }
     // 2 : Units
     // 3 : Work
     // 4 : Planned Work
     // 5 : Actual Work
     // 6 : Overtime Work
     // 7 : Cost
     // 8 : Planned Cost
     // 9 : Actual Cost
     // 10 : Start*
     // 11 : Finish*
     // 12 : Delay
     // 13 : Resource Unique ID
     if (!is_null($idResource) && $this->oPreviousTask instanceof Task) {
         $oResource = $this->phpProject->getResourceFromIndex($idResource);
         if (!is_null($oResource)) {
             $this->oPreviousTask->addResource($oResource);
         }
     }
 }
Esempio n. 2
0
 public function testTask()
 {
     $object = new Task();
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->createTask());
     $this->assertCount(1, $object->getTasks());
     $this->assertEquals(1, $object->getTaskCount());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->createTask());
     $this->assertCount(2, $object->getTasks());
     $this->assertEquals(2, $object->getTaskCount());
 }
Esempio n. 3
0
 /**
  * Permits to clean parent task and calculate parent data like total duration,
  *   date start and complete average.
  * @param PHPProject_Task $oParentTask
  */
 private function sanitizeTaskParent(Task $oParentTask)
 {
     $arrTasksChilds = $oParentTask->getTasks();
     $iProgress = 0;
     $tStartDate = null;
     $tEndDate = null;
     foreach ($arrTasksChilds as $oTaskChild) {
         if ($oTaskChild->getTaskCount() == 0) {
             $this->sanitizeTask($oTaskChild);
         } else {
             $this->sanitizeTaskParent($oTaskChild);
         }
         $iProgress += $oTaskChild->getProgress();
         if (is_null($tStartDate)) {
             $tStartDate = $oTaskChild->getStartDate();
         } elseif ($tStartDate > $oTaskChild->getStartDate()) {
             $tStartDate = $oTaskChild->getStartDate();
         }
         if (is_null($tEndDate)) {
             $tEndDate = $oTaskChild->getEndDate();
         } elseif ($tEndDate < $oTaskChild->getEndDate()) {
             $tEndDate = $oTaskChild->getEndDate();
         }
     }
     $oParentTask->setProgress($iProgress / $oParentTask->getTaskCount());
     $oParentTask->setStartDate($tStartDate);
     $oParentTask->setEndDate($tEndDate);
     $oParentTask->setDuration(($tEndDate - $tStartDate) / 60 / 60 / 24 + 1);
 }
Esempio n. 4
0
 /**
  * Record "Task"
  * @param Task $oTask
  */
 private function writeRecord70(Task $oTask)
 {
     $this->fileContent[] = '70;' . $oTask->getIndex() . ';' . $oTask->getName() . ';' . $oTask->getDuration() . 'd;' . number_format($oTask->getProgress(), 1) . ';' . date('d/m/Y', $oTask->getStartDate());
     foreach ($oTask->getResources() as $oResource) {
         $this->writeRecord75($oResource);
     }
     foreach ($oTask->getTasks() as $oSubTask) {
         $this->writeRecord70($oSubTask);
     }
 }
Esempio n. 5
0
 /**
  * Node "Task"
  * @param XMLReader $oXML
  * @param \DOMElement $domNode
  */
 private function readNodeTask(XMLReader $oXML, \DOMElement $domNode, Task $oTask)
 {
     // Attributes
     $oTask->setIndex($domNode->getAttribute('id'));
     $oTask->setName($domNode->getAttribute('name'));
     $oTask->setStartDate($domNode->getAttribute('start'));
     $oTask->setDuration($domNode->getAttribute('duration'));
     $oTask->setProgress($domNode->getAttribute('complete'));
     // SubNodes
     $oNodes = $oXML->getElements('*', $domNode);
     if ($oNodes->length > 0) {
         foreach ($oNodes as $oNode) {
             if ($oNode->nodeName == 'task') {
                 $oTaskChild = $oTask->createTask();
                 $this->readNodeTask($oXML, $oNode, $oTaskChild);
             }
         }
     }
 }