src/Controller/Front/IndexController.php line 141

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  */
  5. namespace App\Controller\Front;
  6. use App\Entity\AbonnementPay;
  7. use App\Entity\BesoinProductPage;
  8. use App\Entity\BesoinProductPageCategory;
  9. use App\Entity\Cart;
  10. use App\Entity\CartDetail;
  11. use App\Entity\CompteAbonnementPro;
  12. use App\Entity\CompteAbonnementProCommandesFactures;
  13. use App\Entity\CompteAbonnementProFacture;
  14. use App\Entity\Imprimeur;
  15. use App\Entity\LanguageCountry;
  16. use App\Entity\NosCrea;
  17. use App\Entity\NotifB2b;
  18. use App\Entity\NotifB2cCompte;
  19. use App\Entity\OrderDetailVirement;
  20. use App\Entity\Orders;
  21. use App\Entity\Page\Page;
  22. use App\Entity\Product;
  23. use App\Entity\Stats;
  24. use App\Entity\StuartOrder;
  25. use App\Entity\User;
  26. use App\Entity\UserStripe;
  27. use App\Services\AbonnementService;
  28. use App\Services\AvisVerifiesService;
  29. use App\Services\CartService;
  30. use App\Services\CheckoutService;
  31. use App\Services\FactureService;
  32. use App\Services\NbDesigner;
  33. use App\Services\Notifications;
  34. use App\Services\OrderService;
  35. use App\Services\ReferalCandyService;
  36. use App\Services\StripeConnect;
  37. use App\Services\StripeConnectTest;
  38. use Spipu\Html2Pdf\Html2Pdf;
  39. use Stripe\Invoice;
  40. use Stripe\Subscription;
  41. use Symfony\Component\Finder\Finder;
  42. use Symfony\Component\HttpFoundation\RedirectResponse;
  43. use Symfony\Component\Routing\Annotation\Route;
  44. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  45. use Twig\Environment;
  46. use Symfony\Component\HttpFoundation\Response;
  47. use Symfony\Component\HttpFoundation\Request;
  48. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  49. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  50. use Doctrine\ORM\EntityManagerInterface;
  51. use Symfony\Contracts\Translation\TranslatorInterface;
  52. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  53. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  54. use JouwWeb\SendCloud\Client;
  55. use JouwWeb\SendCloud\Model\Address;
  56. use JouwWeb\SendCloud\Model\Parcel;
  57. use JouwWeb\SendCloud\Model\WebhookEvent;
  58. use JouwWeb\SendCloud\Exception\SendCloudRequestException;
  59. use App\Services\SendCloudApi;
  60. use App\Services\DelivreeService;
  61. use Stripe\Stripe;
  62. use Stripe\Customer;
  63. use Stripe\PaymentMethod;
  64. use App\Services\Exaprint;
  65. class IndexController extends AbstractController
  66. {
  67.     private $em;
  68.     private $session;
  69.     private $apiCloudSend;
  70.     private $delivreeService;
  71.     private $cartService;
  72.     private $mailer;
  73.     private $router;
  74.     public function __construct(
  75.         SessionInterface $session,
  76.         ParameterBagInterface $params,
  77.         TranslatorInterface $trans,
  78.         EntityManagerInterface $em,
  79.         CheckoutService $checkout_service,
  80.         SendCloudApi $apiCloudSend,
  81.         DelivreeService $delivreeService,
  82.         CartService $cartService,
  83.         AbonnementService $abonnementService,
  84.         StripeConnect $stripeConnect,
  85.         FactureService $facture_service,
  86.         Notifications $notifications,
  87.         AvisVerifiesService $avisVerifiesService,
  88.         ReferalCandyService $candyService,
  89.         OrderService $order_service,
  90.         \Swift_Mailer $mailer,
  91.         Environment $twig,
  92.         UrlGeneratorInterface $router,
  93.         Exaprint $exaprint,
  94.         NbDesigner $nbDesigner
  95.     ) {
  96.         $this->em $em;
  97.         $this->trans $trans;
  98.         $this->session $session;
  99.         $this->params $params;
  100.         $this->checkout_service $checkout_service;
  101.         $this->apiCloudSend $apiCloudSend;
  102.         $this->delivreeService $delivreeService;
  103.         $this->cartService $cartService;
  104.         $this->abonnementService $abonnementService;
  105.         $this->stripeConnectService =  $stripeConnect;
  106.         $this->facture_service $facture_service;
  107.         $this->notifications $notifications;
  108.         $this->avisVerifiesService $avisVerifiesService;
  109.         $this->candyService $candyService;
  110.         $this->order_service $order_service;
  111.         $this->mailer $mailer;
  112.         $this->twig $twig;
  113.         $this->nbDesigner $nbDesigner;
  114.         $this->router $router;
  115.         $this->exaprint $exaprint;
  116.     }
  117.     /**
  118.      * @Route("/", name="accueil",options={"expose"=true})
  119.      */
  120.     public function index(Request $request) : Response
  121.     {
  122.         if($request->get('displayProduct') && $request->get('imprimerRelierEdit') && $request->get('imprimerRelierEdit') == && $request->get('displayProduct') == 1)
  123.             return $this->redirectToRoute('edit_pdf_page');
  124.         $response $this->render('front/accueil/index.html.twig');
  125.         return $response;
  126.     }
  127.     /**
  128.      * @Route("/vcompteur", name="add_visiteur_count",options={"expose"=true})
  129.      */
  130.     public function compteurVisite(Request $request) : Response
  131.     {
  132.         if ($request->isXmlHttpRequest()) {
  133.             $this->checkout_service->addCompteurVisite($request);
  134.         }
  135.         $response = new Response();
  136.         $response->setContent(1);
  137.         return $response;
  138.     }
  139.     /**
  140.      * @Route("/add-cookies", name="add_cookies",options={"expose"=true})
  141.      */
  142.     public function addCookies(Request $request) : Response
  143.     {
  144.         if ($request->isXmlHttpRequest()) {
  145.             $this->cartService->addCookies($request);
  146.         }
  147.         $response = new Response();
  148.         $response->setContent(1);
  149.         return $response;
  150.     }
  151.     /**
  152.      * @Route("/add-cookies-refuse", name="add_cookies_refuse",options={"expose"=true})
  153.      */
  154.     public function addCookiesRefuse(Request $request) : Response
  155.     {
  156.         if ($request->isXmlHttpRequest()) {
  157.             $this->cartService->addCookiesRefuse($request);
  158.         }
  159.         $response = new Response();
  160.         $response->setContent(1);
  161.         return $response;
  162.     }
  163.     /**
  164.      * @Route("/block-livraison-accueil", name="block_livraison_accueil",options={"expose"=true})
  165.      */
  166.     public function blockLivraison(Request $request): Response
  167.     {
  168.         $dataRequest $request->request->all();
  169.         $this->session->set('longiAdresse',$dataRequest['longi']);
  170.         $this->session->set('latAdresse',$dataRequest['lat']);
  171.         $this->session->set('addresseAdresse',$dataRequest['addresseAdresse']);
  172.         $this->session->set('postalcodeAdresse',$dataRequest['postalcode']);
  173.         $this->session->set('cityAdresse',$dataRequest['cityAdresse']);
  174.         $this->session->set('CountryLiv',$dataRequest['CountryLiv']);
  175.         $this->session->set('CountryCodeLiv',$dataRequest['CountryCodeLiv']);
  176.         $dataLivrason $this->checkout_service->getModeLivraisonSansStock($dataRequest);
  177.         $dataLivrason['latLongi'] = ['lat' => $dataRequest['lat'],'longi'=>$dataRequest['longi']];
  178.         return $this->render('front/accueil/block_livraison.html.twig'$dataLivrason);
  179.     }
  180.     /**
  181.      * @Route("/block-livraison-new-accueil", name="block_livraison_new_accueil",options={"expose"=true})
  182.      */
  183.     public function blockLivraisonNewAccueil(Request $request): Response
  184.     {
  185.         $dataRequest $request->request->all();
  186.         $dataRequest['CountryLiv'] = $dataRequest['CountryLiv'] ? $dataRequest['CountryLiv'] : 'France';
  187.         $dataRequest['CountryCodeLiv'] = $dataRequest['CountryCodeLiv'] ? $dataRequest['CountryCodeLiv'] :null;
  188.         $this->session->set('longiAdresse',$dataRequest['longi']);
  189.         $this->session->set('latAdresse',$dataRequest['lat']);
  190.         $this->session->set('addresseAdresse',$dataRequest['addresseAdresse']);
  191.         $this->session->set('postalcodeAdresse',$dataRequest['postalcode']);
  192.         $this->session->set('cityAdresse',$dataRequest['cityAdresse']);
  193.         $this->session->set('CountryLiv',$dataRequest['CountryLiv']);
  194.         $this->session->set('CountryCodeLiv',$dataRequest['CountryCodeLiv']);
  195.         $dataLivrason $this->checkout_service->getModeLivraisonSansStock($dataRequest);
  196.         $dataLivrason['latLongi'] = ['lat' => $dataRequest['lat'],'longi'=>$dataRequest['longi']];
  197.         return $this->render('front/accueil/block_livraison_new_accueil.html.twig'$dataLivrason);
  198.     }
  199.     /**
  200.      * @Route("/check-livraison-new-accueil", name="check_livraison_new_accueil",options={"expose"=true})
  201.      */
  202.     public function checkLivraisonNewAccueil(Request $request): Response
  203.     {
  204.         $dataRequest $request->request->all();
  205.         $dataRequest['CountryLiv'] = $dataRequest['CountryLiv'] ? $dataRequest['CountryLiv'] : 'France';
  206.         $dataRequest['CountryCodeLiv'] = $dataRequest['CountryCodeLiv'] ? $dataRequest['CountryCodeLiv'] :null;
  207.         $this->session->set('longiAdresse',$dataRequest['longi']);
  208.         $this->session->set('latAdresse',$dataRequest['lat']);
  209.         $this->session->set('addresseAdresse',$dataRequest['addresseAdresse']);
  210.         $this->session->set('postalcodeAdresse',$dataRequest['postalcode']);
  211.         $this->session->set('cityAdresse',$dataRequest['cityAdresse']);
  212.         $this->session->set('CountryLiv',$dataRequest['CountryLiv']);
  213.         $this->session->set('CountryCodeLiv',$dataRequest['CountryCodeLiv']);
  214.         $dataLivrason $this->checkout_service->getModeLivraisonSansStock($dataRequest);
  215.         $dataLivrason['latLongi'] = ['lat' => $dataRequest['lat'],'longi'=>$dataRequest['longi']];
  216.         return $this->render('front/accueil/block_product_new_accueil.html.twig'$dataLivrason);
  217.     }
  218.     /**
  219.      * @Route("/block-livraison-time-accueil", name="block_livraison_time_accueil",options={"expose"=true})
  220.      */
  221.     public function blockLivraisontime(Request $request): Response
  222.     {
  223.         $dataRequest $request->request->all();
  224.         $this->session->set('longiAdresse',$dataRequest['longi']);
  225.         $this->session->set('latAdresse',$dataRequest['lat']);
  226.         $this->session->set('addresseAdresse',$dataRequest['addresseAdresse']);
  227.         $this->session->set('postalcodeAdresse',$dataRequest['postalcode']);
  228.         $this->session->set('cityAdresse',$dataRequest['cityAdresse']);
  229.         $this->session->set('CountryLiv',$dataRequest['CountryLiv']);
  230.         $this->session->set('CountryCodeLiv',$dataRequest['CountryCodeLiv']);
  231.         $dataLivrason $this->checkout_service->getModeLivraisonSansStock($dataRequest);
  232.         $time =false ;
  233.         if($dataLivrason['imprimeurZoneChalandise'] ){
  234.            $time $this->cartService->getFirstTime($dataLivrason['imprimeurZoneChalandise']->getId());
  235.         }
  236.         $responce = new Response();
  237.         $responce->setContent($time?$time:'');
  238.         return $responce;
  239.     }
  240.     /**
  241.      * @Route("/besoin-produits", name="besoin_produits",options={"expose"=true})
  242.      */
  243.     public function besoinProduits(Request $request): Response
  244.     {
  245.         $data $this->checkout_service->getDataLivraisonWithOrNotImprimeur();
  246.         $response $this->render('front/accueil/besoin-products-new.html.twig',$data);
  247.         return $response;
  248.     }
  249.     /**
  250.      * @Route("/besoin-produits-preference", name="besoin_produits_preference",options={"expose"=true})
  251.      */
  252.     public function besoinProduitsPreference(Request $request): Response
  253.     {
  254.         $requestAll $request->request->all();
  255.         $array = [];
  256.         if($requestAll){
  257.             $i ;
  258.             $arrayGlobal = [];
  259.             foreach ($requestAll as $item){
  260.                 $products $this->em->getRepository(BesoinProductPage::class)->getByCategoryAndCretere($item);
  261.                 $tab = [];
  262.                 if($products){
  263.                     foreach ($products as $product){
  264.                         $tab[$product->getId()] = $product->getId();
  265.                     }
  266.                 }
  267.                 if($i == ){
  268.                     $arrayGlobal $tab ;
  269.                 }else{
  270.                     $arrayGlobal array_intersect($arrayGlobal $tab);
  271.                 }
  272.                 $i ++ ;
  273.             }
  274.             if($arrayGlobal){
  275.                 foreach ($arrayGlobal as $value){
  276.                     $product $this->em->getRepository(BesoinProductPage::class)->find($value);
  277.                     $array[$product->getCategory()->getName()]['category'] = $product->getCategory();
  278.                     $array[$product->getCategory()->getName()]['products'][] = $product;
  279.                 }
  280.             }
  281.         }
  282.         else{
  283.             $categorys $this->em->getRepository(BesoinProductPageCategory::class)->getAllActive();
  284.             $response $this->render('front/accueil/besoin-product-bloc/content-new.html.twig',['categorys' => $categorys]);
  285.             return $response;
  286.         }
  287.         $response $this->render('front/accueil/besoin-product-bloc/content-search-preference.html.twig',['categorys' => $array]);
  288.         return $response;
  289.     }
  290.     /**
  291.      * @Route("/besoin-produits-default", name="besoin_produits_default",options={"expose"=true})
  292.      */
  293.     public function besoinProduitsdefault(Request $request): Response
  294.     {
  295.         $categorys $this->em->getRepository(BesoinProductPageCategory::class)->getAllActive();
  296.         $response $this->render('front/accueil/besoin-product-bloc/content-new.html.twig',['categorys'=>$categorys]);
  297.         return $response;
  298.     }
  299.     /**
  300.      * @Route("/besoin-produits-2", name="besoin_produits_2",options={"expose"=true})
  301.      */
  302.     public function besoinProduitsNew(Request $request): Response
  303.     {
  304.         $response $this->render('front/accueil/besoin-products-2.html.twig');
  305.         return $response;
  306.     }
  307.     /**
  308.      * @Route("/besoin-produits/search", name="searchBesoinProduct",options={"expose"=true})
  309.      */
  310.     public function searchBesoinProduct(Request $request) : Response
  311.     {
  312.         $requestData $request->query->get('search');
  313.         $data $this->nbDesigner->searchProductOption($request,$requestData,$this->getUser());
  314.         $response $this->render('front/accueil/besoin-product-bloc/content-search.html.twig',['data'=>$data,'valueInput'=>$requestData]);
  315.         return $response;
  316.     }
  317.     /**
  318.      * @Route("/besoin-produits-crello-add-to-cart/{id}", name="besoin_produits_crollo_add_to_cart",options={"expose"=true})
  319.      */
  320.     public function besoinProduitsCrelloAddToCart(Request $request,$id): Response
  321.     {
  322.         $data $this->nbDesigner->addToCartNewNbDesignerNosCrea($request,$this->getUser(),$id);
  323.         if($data){
  324.             $redirect =  $this->generateUrl('product_option', array('token'=>$data->getToken(),'product'=>$data->getProduct()->getId()));
  325.         }else{
  326.             $redirect $this->generateUrl('besoin_produits');
  327.         }
  328.         $responce = new Response();
  329.         $responce->setContent($redirect);
  330.         return $responce;
  331.     }
  332.     /**
  333.      * @Route("/besoin-produits-old", name="besoin_produits_old",options={"expose"=true})
  334.      */
  335.     public function besoinProduitsOld(Request $request): Response
  336.     {
  337.         $response $this->render('front/accueil/index-products.html.twig');
  338.         return $response;
  339.     }
  340.     /**
  341.      * @Route("/webhook-stripe", name="webhook_stripe_copees")
  342.      */
  343.     public function webhookStripe(Request $request): Response
  344.     {
  345.         $endpoint_secret 'whsec_7Hzm2izHMWSwhcPNWCbDmWGX3FJdHujM';
  346.         $payload = @file_get_contents('php://input');
  347.         $sig_header $_SERVER['HTTP_STRIPE_SIGNATURE'];
  348.         $event null;
  349.         try {
  350.             $event = \Stripe\Webhook::constructEvent(
  351.                 $payload$sig_header$endpoint_secret
  352.             );
  353.         } catch(\UnexpectedValueException $e) {
  354.             exit();
  355.         } catch(\Stripe\Exception\SignatureVerificationException $e) {
  356.             exit();
  357.         }
  358.         if ($event->type == "payment_intent.succeeded") {
  359.             $intent $event->data->object;
  360.             $charge $intent->id;
  361.             $order $this->em->getRepository(Orders::class)->findBy(array('chargeStripeId'=> $charge),array('id'=>'desc'));
  362.             if (isset($order[0]) && $order[0] && !$order[0]->getIsValid()) {
  363.                 $cart $order[0]->getCart();
  364.                 $order[0]->setIsValid(true);
  365.                 $status $this->em->getRepository(Stats::class)->findOneBy(array('statusNbr' => Stats::ENCOURT));
  366.                 $order[0]->setStatus($status);
  367.                 $nameFacture $this->facture_service->uploadFacture($order[0]->getId());  //creation facture
  368.                 $order[0]->setPathFacture($nameFacture);
  369.                 $order[0]->setIsAbonnementPro($cart->getIsAbonnementPro());
  370.                 $this->em->persist($order[0]);
  371.                 $this->em->flush();
  372.                 $this->stripeConnectService->createRefundByPaymentIntentIfEmptyDetail($order[0], $cart); // refound 0.5€ if 0€ in order
  373.                 http_response_code(200);
  374.             }
  375.             exit();
  376.         } elseif ($event->type == "payment_intent.payment_failed") {
  377.             exit();
  378.         }elseif ( $event->type == "charge.dispute.closed" or $event->type == "charge.dispute.funds_withdrawn") {
  379.             $dispute $event->data->object;
  380.             $charge $dispute->payment_intent;
  381.             $factureAbo $this->em->getRepository(CompteAbonnementProFacture::class)->findBy(array('chargeStripeId'=> $charge),array('id'=>'desc'));
  382.             $factureAboCommandes $this->em->getRepository(CompteAbonnementProCommandesFactures::class)->findBy(array('chargeStripeId'=> $charge),array('id'=>'desc'));
  383.             if(($factureAbo && $factureAbo[0])){
  384.                 $facture $factureAbo[0];
  385.                 $facture->setStatusPaiement(CompteAbonnementProFacture::STATUS_IMPAYE);
  386.                 $this->em->persist($facture);
  387.                 $this->em->flush();
  388.             }
  389.             if(($factureAboCommandes && $factureAboCommandes[0])){
  390.                 $factureCommande $factureAboCommandes[0];
  391.                 $factureCommande->setStatusPaiement(CompteAbonnementProCommandesFactures::STATUS_IMPAYE);
  392.                 $this->em->persist($factureCommande);
  393.                 $this->em->flush();
  394.             }
  395.             http_response_code(200);
  396.             exit();
  397.         }
  398.     }
  399.     /**
  400.      * @Route("/webhook-request-merci-facteur", name="webhook_request_merci_facteur")
  401.      */
  402.     public function webhookRequestMerciFacteur(Request $request) : Response
  403.     {
  404.         if (isset($_POST['event'])) {
  405.             $objectEvent json_decode($_POST['event']);
  406.             if ((is_object($objectEvent) and $objectEvent->name_event == 'printed') or (is_object($objectEvent) and $objectEvent->name_event == 'new-state') or (is_object($objectEvent) and $objectEvent->name_event == 'delivered')) {
  407.                 $objectDetail json_decode($_POST['detail']);
  408.                 foreach ($objectDetail as $detail) {
  409.                     $idEvent $detail->id_envoi;
  410.                     $object $this->em->getRepository(StuartOrder::class)->findOneBy(array('idJob' => $idEvent));
  411.                     $order null;
  412.                     if ($object) {
  413.                         $order $object->getOrders();
  414.                         $object->setTrakingurl($detail->ref_courrier);
  415.                         $object->setTrakckingPoste($detail->tracking_number);
  416.                         $object->setStatus($detail->statut_description);
  417.                         $this->em->persist($object);
  418.                         $this->em->flush();
  419.                     }
  420.                     $this->notifications->mailRequestDetailPoste($detail$order);
  421.                 }
  422.             }
  423.         }
  424.         http_response_code(200);
  425.         exit();
  426.     }
  427.     /**
  428.      * @Route("/offre-B2B", name="offre_B2B")
  429.      */
  430.     public function offreB2B(Request $request) : Response
  431.     {
  432.         return $this->redirectToRoute('offre_B2B_2');
  433.         $response $this->render('front/accueil/offre-b2b.html.twig');
  434.         return $response;
  435.     }
  436.     /**
  437.      * @Route("/offre-B2B-2", name="offre_B2B_2")
  438.      */
  439.     public function offreB2B2(Request $request) : Response
  440.     {
  441.         $response $this->render('front/accueil/offre-b2b2.html.twig');
  442.         return $response;
  443.     }
  444.     /**
  445.      * @Route("/page/{url}", name="page_cms_front")
  446.      */
  447.     public function pageCms(Request $request,$url) : Response
  448.     {
  449.         $page $this->em->getRepository(Page::class)->findOneBy(['url'=>$url]);
  450.         if($page){
  451.             if($page->getPageType() == Page::PAGE_VILLE){
  452.                 $response $this->render('front/page-cms/page-ville.html.twig',['page'=>$page]);
  453.             }elseif ($page->getPageType() == Page::PAGE_METIER){
  454.                 $response $this->render('front/page-cms/page-metier.html.twig',['page'=>$page]);
  455.             }elseif ($page->getPageType() == Page::PAGE_PRODUIT){
  456.                 $response $this->render('front/page-cms/page-produit.html.twig',['page'=>$page]);
  457.             }else{
  458.                 $response $this->render('front/error.html.twig');
  459.             }
  460.         }else{
  461.             $response $this->render('front/error.html.twig');
  462.         }
  463.         return $response;
  464.     }
  465.     /**
  466.      * @Route("/change-country", name="change_country_code" ,options={"expose"=true})
  467.      */
  468.     public function ChangeCountry(Request $request) : Response
  469.     {
  470.         $referer $request->headers->get('referer'); // get the referer, it can be empty!
  471.         if (!\is_string($referer) || !$referer) {
  472.             $refererRoute 'accueil';
  473.         }
  474.         $refererPathInfo Request::create($referer)->getPathInfo();
  475.         $routeInfos $this->router->match($refererPathInfo);
  476.         $refererRoute $routeInfos['_route'] ?? 'accueil';
  477.         unset($routeInfos['_route']);
  478.         unset($routeInfos['_controller']);
  479.         $routeInfos['_locale'] = $this->session->get('_locale');
  480.         return $this->redirectToRoute($refererRoute,$routeInfos);
  481.     }
  482. //    /**
  483. //     * @Route("/aqsdqsdqsdaa", name="changeazeaze_country_code" ,options={"expose"=true})
  484. //     * @IsGranted("ROLE_SUPER_ADMINISTRATOR")
  485. //     */
  486. //    public function aazeazeaz(Request $request) : Response
  487. //    {
  488. //        $imprimeur = $this->em->getRepository(Imprimeur::class)->find(29);
  489. //        $orderDetailVirement = $this->em->getRepository(OrderDetailVirement::class)->find(12412);
  490. //        $orderDetails = $orderDetailVirement->getOrderDetail();
  491. ////        $nameFacture = $this->facture_service->uploadFactureVirementDetails30j($orderDetails,$orderDetailVirement);  //creation facture virement 30j
  492. //        foreach ($orderDetails as $orderDetail) {
  493. //            $orderDetail->setPathFactureVirement('not_facture');
  494. //            $orderDetail->setPayoutStripeId('po_1Oh6vtQ1EFGM3mS7em6SNaSO');
  495. //            $this->em->persist($orderDetail);
  496. //        }
  497. //        // set orderDetailVirement
  498. //        $orderDetailVirement->setPayoutStripeId('po_1Oh6vtQ1EFGM3mS7em6SNaSO');
  499. //        $orderDetailVirement->setPathFactureVirement('not_facture');
  500. //        $this->em->persist($orderDetailVirement);
  501. //        $this->em->flush();
  502. //
  503. ////        $this->notifications->sendOrderDetailVirement30j($imprimeur, 'Virement imprimeur', $orderDetailVirement, $nameFacture,$orderDetails); // send order virement to imprimeur
  504. //        die();
  505. //    }
  506.     /**
  507.      * @Route("/lab-copees", name="lab_copees")
  508.      */
  509.     public function labCopees(Request $request) : Response
  510.     {
  511.         $response $this->render('front/accueil/labCopees.html.twig');
  512.         return $response;
  513.     }
  514.     /**
  515.      * @Route("/change-receiver-notif-b2b/{token}", name="change_mail_receiver_b2b_notif",options={"expose"=true})
  516.      */
  517.     public function changeNotifCustomerB2c(Request $request,$token) : Response
  518.     {
  519.         if($token){
  520.             $notif $this->em->getRepository(NotifB2b::class)->findOneBy(['token'=>$token]);
  521.             if($notif){
  522.                 $customer $notif->getCustomer();
  523.                 if($customer){
  524.                     $customer->setIsNotReceiver(true);
  525.                     $this->em->persist($customer);
  526.                     $this->em->flush();
  527.                     $response $this->render('front/pageDeleteNotification.html.twig');
  528.                     return $response;
  529.                 }
  530.             }
  531.         }
  532.         $response = new Response(1);
  533.         return $response;
  534.     }
  535. }