src/Controller/PaiementMobileBankigController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Order;
  4. use App\Entity\HistoriquePaiement;
  5. use App\Repository\CartRepository;
  6. use App\Repository\OrderRepository;
  7. use App\Repository\ForecastRepository;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use App\Repository\EtatPaiementRepository;
  10. use App\Repository\TypepaiementRepository;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. /**
  16.  * @Route("/commande", name="app_paiement_")
  17.  * @IsGranted("ROLE_USER")
  18.  */
  19. class PaiementMobileBankigController extends AbstractController
  20. {
  21.     private $em;
  22.     public function __construct(EntityManagerInterface $em){
  23.         $this->em $em;
  24.     }
  25.     /**
  26.      * @Route("/paiement/mobile/bankig/success/{reference}", name="mobile_bankig_success")
  27.      */
  28.     public function success(
  29.         EtatPaiementRepository $repo,
  30.         $reference null
  31.         CartRepository $cartRepo,
  32.         TypepaiementRepository $typepaiementRepo,
  33.         OrderRepository $orderRepo
  34.     ): Response
  35.     {
  36.         $order  $orderRepo->findOneByReference($reference);
  37.         return $this->render('paiement_mobile_bankig/success.html.twig', [
  38.             'order'     => $order,
  39.         ]);
  40.     }
  41.     /**
  42.      * @Route("/paiement/mobile/bankig/annuler/{reference}", name="mobile_bankig_cancel")
  43.      */
  44.     public function annuler(
  45.         $reference null
  46.         OrderRepository $orderRepo
  47.     ): Response
  48.     {
  49.         $order $orderRepo->findOneByReference($reference);
  50.         return $this->render('paiement_mobile_bankig/annuler.html.twig', [
  51.             'order'     => $order,
  52.         ]);
  53.     }
  54.     /**
  55.      * @Route("/paiement/mobile/bankig/notifier", name="mobile_bankig_notifier")
  56.      */
  57.     public function notifier(
  58.         EtatPaiementRepository $repo,
  59.         CartRepository $cartRepo,
  60.         TypepaiementRepository $typepaiementRepo,
  61.         OrderRepository $orderRepo
  62.     ): Response
  63.     {
  64.         $data json_decode(file_get_contents("php://input"));
  65.         
  66.         if ($data->status == "SUCCESS") {
  67.             $carts $cartRepo->findByUser($this->getUser());
  68.             foreach ($carts as $cart) {
  69.                 $this->em->remove($cart);
  70.             }
  71.             $hitorique_paiement = new HistoriquePaiement();
  72.             $etatPaiement       $repo->findOneById(1);
  73.             $order              $orderRepo->findOneBystripeSessionId($data->notif_token);
  74.             $order->setEtatpaiement($etatPaiement)
  75.                 ->setMontantPaye($order->getTotal())
  76.                 ->setDateLastPaiement(new \DateTime());
  77.             $hitorique_paiement->setUser($this->getUser())
  78.                             ->setMyOrder($order)
  79.                             ->setMotantPaye($order->getTotal())
  80.                             ->setTypepaiement($order->getTypepaiement())
  81.                             ->setDatePaiement(new \DateTime())
  82.                             ->setIsValid(true);
  83.             $this->em->persist($hitorique_paiement);
  84.             $this->em->flush();
  85.             return $this->render('paiement_mobile_bankig/notifier.html.twig', [
  86.                 'order'     => $order,
  87.             ]);
  88.         }
  89.     }
  90.     /***********************************************
  91.      *             FORECAST
  92.      ***********************************************/
  93.      /**
  94.      * @Route("/paiement/mobile/bankig/forecast/success/{reference}", name="mobile_bankig_forecast_success")
  95.      */
  96.     public function successForecast(
  97.         EtatPaiementRepository $repo,
  98.         $reference null
  99.         CartRepository $cartRepo,
  100.         TypepaiementRepository $typepaiementRepo,
  101.         ForecastRepository $forecastRepo
  102.     ): Response
  103.     {
  104.         $forecast $forecastRepo->findOneByReference($reference);
  105.         return $this->render('paiement_mobile_bankig/success_forecast.html.twig', [
  106.             'order'     => $forecast,
  107.         ]);
  108.     }
  109.     /**
  110.      * @Route("/paiement/mobile/bankig/forecast/annuler/{reference}", name="mobile_bankig_forecast_cancel")
  111.      */
  112.     public function annulerForecast(
  113.         $reference null
  114.         ForecastRepository $forecastRepo
  115.     ): Response
  116.     {
  117.         $forecast $forecastRepo->findOneByReference($reference);
  118.         return $this->render('paiement_mobile_bankig/annuler_forecast.html.twig', [
  119.             'order'     => $forecast,
  120.         ]);
  121.     }
  122.     /**
  123.      * @Route("/paiement/mobile/bankig/forecast/notifier", name="mobile_bankig_forecast_notifier")
  124.      */
  125.     public function notifierForecast(
  126.         EtatPaiementRepository $repo
  127.         CartRepository $cartRepo,
  128.         TypepaiementRepository $typepaiementRepo,
  129.         ForecastRepository $forecastRepo
  130.     ): Response
  131.     {
  132.         $data json_decode(file_get_contents("php://input"));
  133.         
  134.         if ($data->status == "SUCCESS") {
  135.         $carts $cartRepo->findByUser($this->getUser());
  136.         foreach ($carts as $cart) {
  137.             $this->em->remove($cart);
  138.         }
  139.         $hitorique_paiement = new HistoriquePaiement();
  140.         $etatPaiement       $repo->findOneById(1);
  141.         $forecast           $forecastRepo->findOneByReference($data->notif_token);
  142.         $forecast->setEtatpaiement($etatPaiement);
  143.         $hitorique_paiement->setUser($this->getUser())
  144.                            ->setForecast($forecast)
  145.                            ->setMotantPaye($forecast->getTotal())
  146.                            ->setTypepaiement($forecast->getTypepaiement())
  147.                            ->setDatePaiement(new \DateTime())
  148.                            ->setIsValid(true);
  149.         $this->em->persist($hitorique_paiement);
  150.         $this->em->flush();
  151.         return $this->render('paiement_mobile_bankig/notifier_forecast.html.twig', [
  152.             'order'     => $order,
  153.         ]);
  154.         
  155.         }
  156.     }
  157. }