public function testGetSetEndDate() { $object = new Task(); $value = time(); $this->assertEquals('', $object->getEndDate()); $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setEndDate()); $this->assertEquals($value, $object->getEndDate()); $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setEndDate($value)); $this->assertEquals($value, $object->getEndDate()); $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setEndDate((string) $value)); $this->assertEquals($value, $object->getEndDate()); $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setEndDate('2014-12-05 00:05:00')); $this->assertEquals(strtotime('2014-12-05 00:05:00'), $object->getEndDate()); }
/** * 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); }