src/EventSubscriber/cic/residence/BookingCheckInSubscriber.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber\cic\residence;
  3. use App\Event\Residence\BookingResidenceUpdatedEvent;
  4. use CIC\DB\envLoader\db;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. /**
  9.  * @deprecated
  10.  */
  11. class BookingCheckInSubscriber implements EventSubscriberInterface
  12. {
  13.     private db $db;
  14.     private ParameterBagInterface $params;
  15.     private $exporter;
  16.     private $sync false;
  17.     private EntityManagerInterface $em;
  18.     /**
  19.      * DepartmentChangeSubscriber constructor.
  20.      */
  21.     public function __construct(db $dbEntityManagerInterface $emParameterBagInterface $params)
  22.     {
  23.         $this->db $db;
  24.         $this->params $params;
  25.         $this->em $em;
  26.     }
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             BookingResidenceUpdatedEvent::class => 'disabled'
  31. //            [
  32. //                ['onCheckIn'],
  33. //                ['onCheckOut'],
  34. //                ['onCreate'],
  35. //                ['onChange'],
  36. //                ],
  37.         ];
  38.     }
  39.     public function disabled(BookingResidenceUpdatedEvent $event) {
  40.         return;
  41.     }
  42.     public function onCheckIn(BookingResidenceUpdatedEvent $event)
  43.     {
  44.         return;
  45.         if (!$event->getBookings()->getCheckInDate()) {
  46.             return;
  47.         }
  48.         $now = new \DateTime();
  49.         dump($event->getBookings()->getCheckInDate()->format('Ymd'));
  50.         dump($now->format('Ymd'));
  51.         if ($event->getBookings()->getCheckInDate()->format('Ymd') != $now->format('Ymd')) {
  52.             return;
  53.         }
  54.         // set the room as occupied
  55.         $bed $event->getBookings()->getBedSpace();
  56.         $bed->setOccupancyStatus('Occuipied');
  57.         $bed->setOccupant($event->getBookings());
  58.         $this->em->persist($bed);
  59.         $this->em->flush();
  60.         $this->updateStudent('check-in'$event);
  61.         return;
  62.     }
  63.     public function onCheckOut(BookingResidenceUpdatedEvent $event)
  64.     {
  65.         return;
  66.         if (!$event->getBookings()->getCheckOutDate()) {
  67.             return;
  68.         }
  69.         $now = new \DateTime();
  70.         if ($event->getBookings()->getCheckOutDate()->format('Ymd') != $now->format('Ymd')) {
  71.             return;
  72.         }
  73.         // set the room as occupied
  74.         $bed $event->getBookings()->getBedSpace();
  75.         $bed->setOccupancyStatus('Available');
  76.         $bed->setOccupant(null);
  77.         $this->em->persist($bed);
  78.         $this->em->flush();
  79.         $this->updateStudent('check-out'$event);
  80.         return;
  81.     }
  82.     public function onCreate(BookingResidenceUpdatedEvent $event)
  83.     {
  84.         return;
  85.     }
  86.     public function onChange(BookingResidenceUpdatedEvent $event)
  87.     {
  88.         return;
  89.     }
  90.     public function updateStudent(string $typeBookingResidenceUpdatedEvent $event)
  91.     {
  92.         return;
  93.         $supports = ['check-in''check-out'];
  94.         if (!in_array($type$supports)) {
  95.             return;
  96.         }
  97.         if ($type == 'check-in') {
  98.             $address1 $event->getBookings()->getBedSpace()->getRoom()->getBuilding()->getAddress1();
  99.             $address2 $event->getBookings()->getBedSpace()->getName();
  100.         }
  101.         if ($type == 'check-out') {
  102.             $address1 'Moved out of Residence';
  103.             $address2 'Requires Update';
  104.         }
  105.         $student $event->getBookings()->getStudent();
  106.         $student->setAddress($address1);
  107.         $student->setAddress2($address2);
  108.         $this->em->persist($student);
  109.         $this->em->flush();
  110.     }
  111. }