insertTagParser = $insertTagParser; } protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response { $arrData = $template->getData(); // Get bookings if (($bookings = WeinanlieferungReservationModel::findBy("uid",FrontendUser::getInstance()->id,['order' => "(SELECT tl_vr_wa_slot.time FROM tl_vr_wa_slot WHERE tl_vr_wa_slot.id=tl_vr_wa_reservation.pid) ASC"])) !== null) { /** @var WeinanlieferungReservationModel $booking */ foreach ($bookings as $booking) { if (($Slot = $booking->getRelated('pid')) !== null) { $day = new Date($Slot->date); $arrSorten = []; $SortenLeseart = explode(';',$booking->sorten); foreach($SortenLeseart as $sorteLeseart) { list($sorte,$leseart) = explode(',',$sorteLeseart); $objSorte = WeinanlieferungRebsorteModel::findByPk($sorte); $objLeseart = WeinanlieferungLeseartModel::findByPk($leseart); $arrSorten[$objSorte->id.','.$objLeseart->id] = ($objSorte !== null ? $objSorte->title : '') . ' ' . ($objLeseart !== null ? $objLeseart->title : ''); } $arrData['days'][$day->dayBegin][] = array_merge($booking->row(), [ 'sorte' => $arrSorten, 'slot' => $Slot->row() ]); } } } $template->setData($arrData); // Handle ajax if ($request->headers->get('VR-Ajax') == 'WaBookedModule') { throw new ResponseException(new Response($this->insertTagParser->replace($template->parse()))); } return $template->getResponse(); } }