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