Esempio n. 1
0
 /**
  * Generate table
  */
 protected function generate()
 {
     $openingHours = $this->openingHours;
     $days = $this->getRelativeDays();
     $table = new Table\Sheet();
     foreach ($days as $day) {
         $line = new Table\Line();
         if ($day === 0) {
             $line->setActive();
         }
         $now = new DateTime();
         $dayOpeningHours = $openingHours->getDay($day === 0 ? $now : $now->modifyClone(($day > 0 ? '+' : '-') . $day . ' days'));
         $timeFrom = (new FilterTime\Def($dayOpeningHours->getOpenTime()))->getOutput();
         $timeTo = (new FilterTime\Def($dayOpeningHours->getCloseTime()))->getOutput();
         foreach ($this->timeFilters as $filter) {
             $timeFromFormatted = (new $filter($timeFrom))->getOutput();
             $timeToFormatted = (new $filter($timeTo))->getOutput();
         }
         $line->setTitle($day);
         $line->setTimeFrom($timeFrom);
         $line->setTimeFromFormatted($timeFromFormatted);
         $line->setTimeTo($timeTo);
         $line->setTimeToFormatted($timeToFormatted);
         $line->tags = $dayOpeningHours->tags;
         if ($dayOpeningHours instanceof \Cothema\OpeningHours\Model\SpecificDay) {
             $line->specific = TRUE;
         }
         $table->addLine($line);
     }
     $this->generatedTable = $table;
 }
Esempio n. 2
0
 /**
  * Generate table
  */
 protected function generate()
 {
     $days = $this->getSpecificDays();
     $table = new Table\Sheet();
     $line = new Table\Line();
     $lastTimeFrom = NULL;
     $lastTimeTo = NULL;
     $lastDay = NULL;
     $lastTags = NULL;
     $now = new DateTime();
     foreach ($days as $day) {
         $timeFrom = (new FilterTime\Def($day->openTime))->output;
         $timeTo = (new FilterTime\Def($day->closeTime))->output;
         if ($lastTimeFrom === $timeFrom && $lastTimeTo === $timeTo && $this->tagsAreSame($lastTags, $day->tags) && $lastDay !== NULL && (int) $lastDay->day->diff($day->day)->format('%r%a') === 1) {
             $line->dateTo = $day->day;
         } else {
             $lastTimeTo !== NULL && $table->addLine($line);
             $line = new Table\Line();
             $line->dateFrom = $day->day;
             $line->dateTo = $day->day;
             $line->tags = $day->tags;
             $this->lineAddTime($line, $timeFrom, $timeTo);
         }
         if ($day->day->format('Y-m-d') === $now->format('Y-m-d')) {
             $line->setActive();
         }
         $lastTags = $day->tags;
         $lastTimeFrom = $timeFrom;
         $lastTimeTo = $timeTo;
         $lastDay = $day;
     }
     $lastTimeTo !== NULL && $table->addLine($line);
     $this->generatedTable = $table;
 }