src/Controller/BackController/FraisLivraisonController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\BackController;
  3. use App\Entity\FraisLivraison;
  4. use App\Entity\OrderApiDetails;
  5. use App\Form\FraisLivraisonType;
  6. use App\Form\OrderApiDetailsType;
  7. use App\Repository\FraisLivraisonRepository;
  8. use App\Repository\OrderApiDetailsRepository;
  9. use App\Repository\OrderApiRepository;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use App\Service\MailService;
  16. #[Route('/frais/livraison')]
  17. class FraisLivraisonController extends AbstractController
  18. {
  19.     #[Route('/precommande/{id}'name'app_frais_livraison_precommande_edit'methods: ['GET''POST'])]
  20.     public function precommandeEdit(Request $request ,EntityManagerInterface $entityManagerFraisLivraisonRepository $fraisLivraisonRepositoryOrderApiDetailsRepository $orderApiDetailsRepositoryOrderApiDetails $orderApiDetailsOrderApiRepository $orderApiRepositoryMailService $mailService): Response
  21.     {
  22.         // id de commande de l'artcile
  23.         $idOrder $orderApiDetails->getIdorder();
  24.         $commandeRef =  $orderApiRepository->findBy(["id" => $idOrder])[0]->getReforder();
  25.         $customer $orderApiRepository->findBy(["id" => $idOrder])[0]->getCustomer();
  26.         $emailCustomer $customer->getEmail();
  27.         $precommandes $orderApiDetailsRepository->findBy(["prixLivraison" => null]);
  28.         $form $this->createForm(OrderApiDetailsType::class, $orderApiDetails);
  29.         $form->handleRequest($request);
  30.         if ($form->isSubmitted() && $form->isValid()) {
  31.             $quantity $orderApiDetails->getQuantity();
  32.             $prixLivUnitaire $orderApiDetails->getPrixLivraison();
  33.             // dd($prixLivUnitaire);
  34.             $prixLivTotal $prixLivUnitaire $quantity;
  35.             $orderApiDetails->setPrixTotalLivraison($prixLivTotal);
  36.             $entityManager->flush();
  37.             // vérification si frais complet ou pas
  38.             $orderDetails $orderApiDetailsRepository->findBy(["idorder" => $idOrder]);
  39.             $isComplet 0;
  40.             $isNombre count($orderDetails);
  41.             foreach ($orderDetails as $key => $value) {
  42.                 if ($value->getPrixLivraison() != null) {
  43.                     $isComplet $isComplet ;
  44.                 }
  45.             }
  46.             
  47.             // envoie maintenant un mail si complète
  48.             if ($isNombre == $isComplet) {
  49.                 $subject "PAIEMENT COMMANDE";
  50.                 $to = array(
  51.                     'to' => $emailCustomer,
  52.                     'cc' => "princeclain4@gmail.com"
  53.                 );
  54.                 try {
  55.                     $mailService->sendEmail(
  56.                         $to,
  57.                         $subject,
  58.                         'backView/frais_livraison/email.html.twig',
  59.                         [
  60.                             'data' => [
  61.                                 "commande" => $commandeRef
  62.                             ]
  63.                         ],
  64.                     );
  65.                     $this->addFlash('success''Le mail de confirmation a été effectuée avec succès !');
  66.                 } catch (\Throwable $th) {
  67.                     $this->addFlash('error''Une erreur est survenue lors de l\'envoie du mail. Veuillez réessayer.');
  68.                 }
  69.             }
  70.             return $this->redirectToRoute('app_frais_livraison_precommande', [], Response::HTTP_SEE_OTHER);
  71.         }
  72.         return $this->render('backView/frais_livraison/precommandeEdit.html.twig', [
  73.             'frais_livraisons' => $fraisLivraisonRepository->findAll(),
  74.             'precommandes' => $precommandes,
  75.             'form' => $form->createView(),
  76.         ]);
  77.     }
  78.     #[Route('/precommande'name'app_frais_livraison_precommande'methods: ['GET'])]
  79.     public function precommande(FraisLivraisonRepository $fraisLivraisonRepositoryOrderApiDetailsRepository $orderApiDetailsRepository): Response
  80.     {
  81.         $precommandes $orderApiDetailsRepository->findBy(["prixLivraison" => null]);
  82.         return $this->render('backView/frais_livraison/precommande.html.twig', [
  83.             'frais_livraisons' => $fraisLivraisonRepository->findAll(),
  84.             'precommandes' => $precommandes,
  85.         ]);
  86.     }
  87.     #[Route('/'name'app_frais_livraison_index'methods: ['GET'])]
  88.     public function index(FraisLivraisonRepository $fraisLivraisonRepository): Response
  89.     {
  90.         return $this->render('backView/frais_livraison/index.html.twig', [
  91.             'frais_livraisons' => $fraisLivraisonRepository->findAll(),
  92.         ]);
  93.     }
  94.     #[Route('/new'name'app_frais_livraison_new'methods: ['GET''POST'])]
  95.     public function new(Request $requestEntityManagerInterface $entityManager): Response
  96.     {
  97.         $fraisLivraison = new FraisLivraison();
  98.         $form $this->createForm(FraisLivraisonType::class, $fraisLivraison);
  99.         $form->handleRequest($request);
  100.         if ($form->isSubmitted() && $form->isValid()) {
  101.             $entityManager->persist($fraisLivraison);
  102.             $entityManager->flush();
  103.             return $this->redirectToRoute('app_frais_livraison_index', [], Response::HTTP_SEE_OTHER);
  104.         }
  105.         return $this->renderForm('backView/frais_livraison/new.html.twig', [
  106.             'frais_livraison' => $fraisLivraison,
  107.             'form' => $form,
  108.         ]);
  109.     }
  110.     #[Route('/{id}'name'app_frais_livraison_show'methods: ['GET'])]
  111.     public function show(FraisLivraison $fraisLivraison): Response
  112.     {
  113.         return $this->render('backView/frais_livraison/show.html.twig', [
  114.             'frais_livraison' => $fraisLivraison,
  115.         ]);
  116.     }
  117.     #[Route('/{id}/edit'name'app_frais_livraison_edit'methods: ['GET''POST'])]
  118.     public function edit(Request $requestFraisLivraison $fraisLivraisonEntityManagerInterface $entityManager): Response
  119.     {
  120.         $form $this->createForm(FraisLivraisonType::class, $fraisLivraison);
  121.         $form->handleRequest($request);
  122.         if ($form->isSubmitted() && $form->isValid()) {
  123.             $entityManager->flush();
  124.             return $this->redirectToRoute('app_frais_livraison_index', [], Response::HTTP_SEE_OTHER);
  125.         }
  126.         return $this->renderForm('backView/frais_livraison/edit.html.twig', [
  127.             'frais_livraison' => $fraisLivraison,
  128.             'form' => $form,
  129.         ]);
  130.     }
  131.     #[Route('/{id}'name'app_frais_livraison_delete'methods: ['POST'])]
  132.     public function delete(Request $requestFraisLivraison $fraisLivraisonEntityManagerInterface $entityManager): Response
  133.     {
  134.         if ($this->isCsrfTokenValid('delete' $fraisLivraison->getId(), $request->request->get('_token'))) {
  135.             $entityManager->remove($fraisLivraison);
  136.             $entityManager->flush();
  137.         }
  138.         return $this->redirectToRoute('app_frais_livraison_index', [], Response::HTTP_SEE_OTHER);
  139.     }
  140. }