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()); }
/** * 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); }