src/Controller/Front/AppointmentController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Entity\Appointment;
  4. use App\Form\AppointmentType;
  5. use App\Repository\AppointmentRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. class AppointmentController extends AbstractController
  12. {
  13.     public function new(Request $requestTranslatorInterface $translator): Response
  14.     {
  15.         $appointment = new Appointment();
  16.         $form $this->createForm(AppointmentType::class, $appointment);
  17.         if ($request->isMethod('POST') && $request->request->has('appointment')) {
  18.             $appointmentData $request->request->get('appointment');
  19.             $appointmentData['availablity']  = date_format(date_create_from_format('d/m/Y H:i'$appointmentData['availablity']),"Y-m-d H:i:s");
  20.             $appointmentData $request->request->set('appointment'$appointmentData);
  21.         }
  22.         $form->handleRequest($request);
  23.         if ($form->isSubmitted() && $form->isValid()) {
  24.             $appointment->setStatus(Appointment::APPOINTMENT_PENDING);
  25.             $entityManager $this->getDoctrine()->getManager();
  26.             $entityManager->persist($appointment);
  27.             $entityManager->flush();
  28.             $this->addFlash('success_en'$translator->trans('app.appointment.form.sendsuccess'));
  29.             return $this->redirect($request->getUri());
  30.         }
  31.         return $this->render('front/appointment/new.html.twig', [
  32.             'appointment' => $appointment,
  33.             'form' => $form->createView(),
  34.         ]);
  35.     }
  36.     public function respondAppointment(Appointment $appointmentRequest $request): Response
  37.     {
  38.         if ($request->query->get('status') == "valid")
  39.             $appointment->setStatus(Appointment::APPOINTMENT_VALIDE);
  40.         else
  41.             $appointment->setStatus(Appointment::APPOINTMENT_REJECTED);
  42.         $appointment->setAvailablityConfirmed($request->query->get('availablityConfirmed'));
  43.         $appointment->setUpdatedAt(new \DateTime('now'));
  44.         $entityManager $this->getDoctrine()->getManager();
  45.         $entityManager->persist($appointment);
  46.         $entityManager->flush();
  47.         return $this->redirectToRoute('admin');
  48.     }
  49. }