src/Controller/Dashboard/Admin/BookingListController.php line 92

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Dashboard\Admin;
  4. use App\Entity\Booking;
  5. use App\Entity\Experience;
  6. use App\Entity\Category;
  7. use App\Entity\User;
  8. use Doctrine\Persistence\ManagerRegistry;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Knp\Component\Pager\PaginatorInterface;
  14. #[Route('/admin/booking')]
  15. class BookingListController extends AbstractController {
  16.     #[Route('/booking-list'name'admin_booking_list')]
  17.     public function bookingListAdmin(ManagerRegistry $doctrine): Response {
  18.         $em $doctrine->getManager();
  19.         //$list = $em->getRepository(Booking::class)->findAll();
  20.         $bookings $em->getRepository(Booking::class)->findAll();
  21.         $coachs $em->getRepository(User::class)->findAll();
  22.         $experiences $em->getRepository(Experience::class)->findAll();
  23.         $categories  $em->getRepository(Category::class)->findAll();
  24.         return $this->render('admin/booking/admin/adminBookings.html.twig', [
  25.                     'coachs' => $coachs,
  26.                     'bookings' => $bookings,
  27.                     'experiences' => $experiences,
  28.                     'categories' => $categories,
  29.         ]);
  30.     }
  31.     #[Route('/booking-manuelle'name'admin_new_booking')]
  32.     public function newManualBooking(Request $requestManagerRegistry $doctrine): Response {
  33.         $em $doctrine->getManager();
  34.         $experiences $em->getRepository(Experience::class)->findAll();
  35.         if ($request->isMethod('post')) {
  36.             $booking = new Booking();
  37.             $booking->setPax($request->get('pax'));
  38.             $booking->setDuration($request->get('duration'));
  39.             $booking->setDatestart(new \DateTime($request->get('datesstart')));
  40.             $booking->setTotal(intval($request->get('total')));
  41.             $booking->setCurrency(intval($request->get('currency')));
  42.             $booking->setPaymentId($request->get('paymentId'));
  43.             $booking->setPaymentType($request->get('paymentType'));
  44.             $booking->setStatus('1');
  45.             $experience $em->getRepository(Experience::class)->find($request->get('experience'));
  46.             $experience->addBooking($booking);
  47.             $user $em->getRepository(User::class)->findOneByEmail($request->get('email'));
  48.             if ($user) {
  49.                 $this->addFlash('warning''Compte déja existe');
  50.             } else {
  51.                 $user = new User();
  52.                 $user->setFirstname($request->get('firstname'));
  53.                 $user->setLastname($request->get('lastname'));
  54.                 $user->setPhone($request->get('phone'));
  55.                 $user->setUsername($request->get('email'));
  56.                 $user->setEmail($request->get('email'));
  57.                 $user->setRoles(['ROLE_USER''ROLE_CUSTOMER']);
  58.                 $user->setEnabled('1');
  59.                 $em->persist($user);
  60.                 $em->flush();
  61.                 $str 'A=u_c7Rfs3Lmn' $user->getId();
  62.                 $token str_shuffle($str);
  63.                 $user->setEmailVerification($token);
  64.                 $em->persist($user);
  65.                 $em->flush();
  66.             }
  67.             $em->persist($booking);
  68.             $experience->addBooking($booking);
  69.             $customer $user;
  70.             $customer->addBooking($booking);
  71.             $booking->setReference('B' $booking->getId() . 'C' $customer->getId());
  72.             $em->persist($experience);
  73.             $em->persist($customer);
  74.             $em->persist($booking);
  75.             $em->flush();
  76.             $this->addFlash('success''Reservation creer avec succées. ID : #' $booking->getId());
  77.             return $this->redirectToRoute('admin_new_booking');
  78.         }
  79.         return $this->render('admin/booking/admin/adminNewBooking.html.twig', [
  80.                     'experiences' => $experiences,
  81.         ]);
  82.     }
  83. }