예제 #1
0
 /**
  * Permits to clean a task
  * - If the duration is not filled, but the end date is, we calculate it.
  * - If the end date is not filled, but the duration is, we calculate it.
  * @param PHPProject_Task $oTask
  */
 private function sanitizeTask(Task $oTask)
 {
     $pDuration = $oTask->getDuration();
     $pEndDate = $oTask->getEndDate();
     $pStartDate = $oTask->getStartDate();
     if (is_null($pDuration) && !is_null($pEndDate)) {
         $iTimeDiff = $pEndDate - $pStartDate;
         $iNumDays = $iTimeDiff / 60 / 60 / 24;
         $oTask->setDuration($iNumDays + 1);
     } elseif (!is_null($pDuration) && is_null($pEndDate)) {
         $oTask->setEndDate($pStartDate + $pDuration * 24 * 60 * 60);
     }
 }
예제 #2
0
 public function testGetSetStartDate()
 {
     $object = new Task();
     $value = time();
     $this->assertEquals('', $object->getStartDate());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setStartDate());
     $this->assertEquals($value, $object->getStartDate());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setStartDate($value));
     $this->assertEquals($value, $object->getStartDate());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setStartDate((string) $value));
     $this->assertEquals($value, $object->getStartDate());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setStartDate('2014-12-05 00:05:00'));
     $this->assertEquals(strtotime('2014-12-05 00:05:00'), $object->getStartDate());
 }
예제 #3
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);
     }
 }