src/Controller/IndexController.php line 78

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Contract;
  4. use App\Entity\ContractItem;
  5. use App\Entity\Guest;
  6. use App\Entity\RoomPlace;
  7. use App\Entity\RoomPlaceDevice;
  8. use App\Entity\RoomPlaceDeviceSettings;
  9. use App\Entity\RoomPlaceSettings;
  10. use App\Entity\RoomPlaceSettingsDevice;
  11. use App\Entity\SMTPSettings;
  12. use App\Repository\KeypadGuestCodeRepository;
  13. use App\Util\EmailUtil;
  14. use App\Util\GuestUtil;
  15. use App\Util\KeypadUtil;
  16. use App\Util\Loxone\Client;
  17. use App\Util\MewsUtil;
  18. use App\Util\PMSConnectorUtil;
  19. use App\Util\PropertyUtil;
  20. use App\Util\ReservationUtil;
  21. use App\Util\RoomUtil;
  22. use App\Util\UserUtil;
  23. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  24. use Symfony\Component\HttpFoundation\JsonResponse;
  25. use Symfony\Component\HttpFoundation\Request;
  26. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  27. use Symfony\Component\Routing\Annotation\Route;
  28. class IndexController extends AbstractController
  29. {
  30.     /**
  31.      * @Route("/language/{language}", name="set_language")
  32.      */
  33.     public function setLang($languageSessionInterface $session)
  34.     {
  35.         $session->set('_locale'$language);
  36.         return $this->redirectToRoute('online_checkin_index');
  37.     }
  38.     /**
  39.      * @Route("/aba-reset", name="aba_reset")
  40.      */
  41.     public function abaReser(KeypadGuestCodeRepository $repositoryKeypadUtil $keypadUtil)
  42.     {
  43.         $codes $repository->findExpirationCodes();
  44.         $i 0;
  45.         foreach ($codes as $code) {
  46.             if ($code->getKeypadGuest()->getPropertyKeypad()->getProperty()->getId() != 55) {
  47.                 continue;
  48.             }
  49.             $isExists $keypadUtil->checkGuestExists($code->getKeypadGuest()->getPropertyKeypad(), $code->getKeypadGuest());
  50.             if(!$isExists) {
  51.                 dump($code->getCode());
  52.                 $repository->remove($code);
  53.                 continue;
  54.             }
  55.             $keypadUtil->removeCode($code);
  56.             $repository->remove($code);
  57.             $i++;
  58.             if($i>=200) {
  59.                 break;
  60.             }
  61.         }
  62.         dump($codes);
  63.         die("***");
  64.     }
  65.     public function indexAction()
  66.     {
  67.         return $this->redirectToRoute('guest_dashboard');
  68.     }
  69.     /**
  70.      * @Route("/language-system/{language}", name="set_system_language")
  71.      */
  72.     public function setLangSystem($languageSessionInterface $session)
  73.     {
  74.         $session->set('_locale'$language);
  75.         return $this->redirectToRoute('guest_dashboard');
  76.     }
  77.     /**
  78.      * @Route("/send-checkin-access", name="online_checkin_send_access")
  79.      */
  80.     public function sendCheckinAccess(Request $requestPMSConnectorUtil $PMSConnectorUtilPropertyUtil $propertyUtilGuestUtil $guestUtilEmailUtil $emailUtil)
  81.     {
  82.         $contractNumber $request->query->get('contractNumber');
  83.         $monitoringId $request->query->get('monitoringId');
  84.         if (empty($monitoringId)) {
  85.             throw $this->createNotFoundException();
  86.         }
  87.         $property $propertyUtil->getPropertyByMonitoringId($monitoringId);
  88.         $contract $PMSConnectorUtil->getContractByNumber($property$contractNumber);
  89.         if (!$contract instanceof Contract) {
  90.             throw $this->createNotFoundException();
  91.         }
  92.         if (!$contract->getMainGuest() instanceof Guest) {
  93.             throw $this->createNotFoundException();
  94.         }
  95.         $guest $guestUtil->regeneratePassword($contract->getMainGuest());
  96.         if (!$guest instanceof Guest) {
  97.             throw $this->createNotFoundException();
  98.         }
  99.         if ($property->getSmtpSettings() instanceof SMTPSettings) {
  100.             $emailUtil->addEmailToQueueFromTemplateWithDataTransform($property->getSmtpSettings(), $guest->getEmail(), EmailUtil::MASTER_ACCOUNT_EDIT$guest);
  101.         }
  102.         return JsonResponse::create([]);
  103.     }
  104.     /**
  105.      * @Route("/send-checkin-info", name="online_checkin_send_info")
  106.      */
  107.     public function sendCheckinInfo(Request $requestPMSConnectorUtil $PMSConnectorUtilPropertyUtil $propertyUtilGuestUtil $guestUtilEmailUtil $emailUtil)
  108.     {
  109.         $contractNumber $request->query->get('contractNumber');
  110.         $contractItemId $request->query->get('contractItemId');
  111.         $monitoringId $request->query->get('monitoringId');
  112.         if (empty($monitoringId)) {
  113.             throw $this->createNotFoundException();
  114.         }
  115.         $property $propertyUtil->getPropertyByMonitoringId($monitoringId);
  116.         $contract $PMSConnectorUtil->getContractByNumber($property$contractNumber);
  117.         if (!$contract instanceof Contract) {
  118.             throw $this->createNotFoundException();
  119.         }
  120.         if (!$contract->getMainGuest() instanceof Guest) {
  121.             throw $this->createNotFoundException();
  122.         }
  123.         $guest $contract->getMainGuest();
  124.         if (!$guest instanceof Guest) {
  125.             throw $this->createNotFoundException();
  126.         }
  127.         $contractItem null;
  128.         foreach ($contract->getItems() as $item) {
  129.             if ($contractItemId == $item->getExternalId()) {
  130.                 $contractItem $item;
  131.             }
  132.         }
  133.         if (!$contractItem instanceof ContractItem) {
  134.             throw $this->createNotFoundException();
  135.         }
  136.         if ($property->getSmtpSettings() instanceof SMTPSettings) {
  137.             $emailUtil->addEmailToQueueFromTemplateWithDataTransform($property->getSmtpSettings(), $guest->getEmail(), EmailUtil::NEW_RESERVATION_CUSTOMER$contractItem);
  138.         }
  139.         return JsonResponse::create([]);
  140.     }
  141. }