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