logger = $logger; $this->db = $db; $this->eventDispatcher = $eventDispatcher; } public function __invoke(string $scope) { $intThreshold = strtotime('+5 minutes'); $strDefaultNumber = '9999'; $Reservations = WeinanlieferungReservationModel::findFutureBy([ "approved = '1'", "checked_in = ''", "? >= (SELECT tl_vr_wa_slot.time FROM tl_vr_wa_slot WHERE tl_vr_wa_slot.id=tl_vr_wa_reservation.pid)" ],[$intThreshold]); if ($Reservations === null) { return; } foreach ($Reservations as $reservation) { $reservation = $reservation->current(); $memberModel = MemberModel::findById($reservation->uid); if (null === $memberModel) { $this->logger->log( LogLevel::ERROR, sprintf('Could not find member with ID: %s', $reservation->uid), ['contao' => new ContaoContext(__METHOD__, 'AUTO_CHECK_IN')] ); continue; } $time = time(); $reservation->checked_in = '1'; $reservation->checked_in_on = $time; $arrBehaelterNumbers = []; for ($i = 1; $i <= $reservation->behaelter; $i++) { $arrBehaelterNumbers[] = [ 'behaelter' => $strDefaultNumber, 'member' => $memberModel->memberno ]; } $reservation->behaelter_numbers = json_encode($arrBehaelterNumbers); $reservation->save(); $event = new CheckInCompletedEvent($reservation->row(), $reservation); $this->eventDispatcher->dispatch($event, CheckInCompletedEvent::NAME); } } }