src/Services/DistributionFlyerService.php line 64

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: Slim Sayari
  5.  * Date: 16/05/2019
  6.  * Time: 15:03
  7.  */
  8. namespace App\Services;
  9. use App\Entity\DistributionCart;
  10. use App\Entity\DistributionFlyer;
  11. use App\Form\DistributionCartType;
  12. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use Symfony\Component\Form\FormFactoryInterface;
  15. use Symfony\Contracts\Translation\TranslatorInterface;
  16. use Symfony\Component\Security\Core\Security;
  17. use App\Entity\SessionTokenFile;
  18. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  19. use Twig\Environment;
  20. use App\Services\CartService;
  21. class DistributionFlyerService
  22. {
  23.     private $em;
  24.     private $trans;
  25.     private $params;
  26.     private $security;
  27.     private $session;
  28.     private $twig;
  29.     private $abonnementService;
  30.     private $form;
  31.     private $cartService;
  32.     public function __construct(
  33.         AbonnementService $abonnementService,
  34.         Environment $twig,
  35.         SessionInterface $session,
  36.         Security $security,
  37.         ParameterBagInterface $params,
  38.         EntityManagerInterface $em,
  39.         TranslatorInterface $trans,
  40.         FormFactoryInterface $form,
  41.         CartService $cartService,
  42.         CartService $cart_service
  43.     ) {
  44.         $this->em $em;
  45.         $this->trans $trans;
  46.         $this->params $params;
  47.         $this->security $security;
  48.         $this->session $session;
  49.         $this->twig $twig;
  50.         $this->abonnementService $abonnementService;
  51.         $this->cartService $cartService;
  52.         $this->form $form;
  53.         $this->cart_service $cart_service;
  54.     }
  55.    public function add($request){
  56.        $distributionFlyer $this->em->getRepository(DistributionFlyer::class)->findOneByIsEnabled(true);
  57.        //check exist distrubution flyer
  58.        if($distributionFlyer) {
  59.            $cart $this->cartService->getCartCurrent();
  60.            if(!$cart){
  61.                $cart =  $this->cartService->createCart(true);
  62.            }
  63.            $displayForFlyer false;
  64.            //check exist  flyer in cart
  65. //           if($cart && $this->cartService->isProductFlyer($cart->getId())){
  66.            if($cart){
  67.                $displayForFlyer true;
  68.                $distributionCart = new DistributionCart();
  69.                $form $this->form->create(DistributionCartType::class, $distributionCart);
  70.                $form->handleRequest($request);
  71.                if ($form->isSubmitted() && $form->isValid()) {
  72.                    $persone = (int)$distributionCart->getNbrPersonne();
  73.                    $prixQtyTtc $distributionCart->getQty()->getPrixTtc();
  74.                    $prixQtyHt $distributionCart->getQty()->getPrixHt();
  75.                    if($persone == 1){
  76.                        $prixTtc $prixQtyTtc;
  77.                        $prixHt $prixQtyHt;
  78.                    }else if($persone == 2){
  79.                        $prixTtc $prixQtyTtc + ($prixQtyTtc 30)/100;
  80.                        $prixHt $prixQtyHt + ($prixQtyHt 30)/100;
  81.                    }else if($persone == 3){
  82.                        $prixTtc $prixQtyTtc + ($prixQtyTtc 40)/100;
  83.                        $prixHt $prixQtyHt + ($prixQtyHt 40)/100;
  84.                    }else if($persone == 4){
  85.                        $prixTtc $prixQtyTtc + ($prixQtyTtc 50)/100;
  86.                        $prixHt $prixQtyHt + ($prixQtyHt 50)/100;
  87.                    }else{
  88.                        $prixTtc $prixQtyTtc;
  89.                        $prixHt $prixQtyHt;
  90.                    }
  91.                    $distributionCart->setPrixTtc($prixTtc);
  92.                    $distributionCart->setPrixHt($prixHt);
  93.                    $this->em->persist($distributionCart);
  94.                    $this->em->flush();
  95.                    return array(
  96.                        'success'=>true,
  97.                        'id_distribution'=>$distributionCart->getId()
  98.                    );
  99.                }
  100.                return array(
  101.                    'form' => $form->createView(),
  102.                    'is_show'=>true,
  103.                    'displayForFlyer'=>$displayForFlyer,
  104.                );
  105.            }
  106.            return array(
  107.                'is_show'=>true,
  108.                'displayForFlyer'=>$displayForFlyer
  109.              );
  110.        }else{
  111.           return array(
  112.                'is_show'=>false
  113.            );
  114.        }
  115.    }
  116.     public function edit($request,$id){
  117.         $distributionFlyer $this->em->getRepository(DistributionFlyer::class)->findOneByIsEnabled(true);
  118.         //check exist distrubution flyer
  119.         if($distributionFlyer) {
  120.             $cart $this->cartService->getCartCurrent();
  121.             $displayForFlyer false;
  122. //            //check exist  flyer in cart
  123. //            if($cart && $this->cartService->isProductFlyer($cart->getId())){
  124.             if($cart){
  125.                 $displayForFlyer true;
  126.                 $distributionCart $this->em->getRepository(DistributionCart::class)->find($id);
  127.                 if($distributionCart) {
  128.                     $form $this->form->create(DistributionCartType::class, $distributionCart,array('edit'=>true));
  129.                     $form->handleRequest($request);
  130.                     if ($form->isSubmitted() && $form->isValid()) {
  131.                         $persone = (int)$distributionCart->getNbrPersonne();
  132.                         $prixQtyTtc $distributionCart->getQty()->getPrixTtc();
  133.                         $prixQtyHt $distributionCart->getQty()->getPrixHt();
  134.                         if($persone == 1){
  135.                             $prixTtc $prixQtyTtc;
  136.                             $prixHt $prixQtyHt;
  137.                         }else if($persone == 2){
  138.                             $prixTtc $prixQtyTtc + ($prixQtyTtc 30)/100;
  139.                             $prixHt $prixQtyHt + ($prixQtyHt 30)/100;
  140.                         }else if($persone == 3){
  141.                             $prixTtc $prixQtyTtc + ($prixQtyTtc 40)/100;
  142.                             $prixHt $prixQtyHt + ($prixQtyHt 40)/100;
  143.                         }else if($persone == 4){
  144.                             $prixTtc $prixQtyTtc + ($prixQtyTtc 50)/100;
  145.                             $prixHt $prixQtyHt + ($prixQtyHt 50)/100;
  146.                         }else{
  147.                             $prixTtc $prixQtyTtc;
  148.                             $prixHt $prixQtyHt;
  149.                         }
  150.                         $distributionCart->setPrixTtc($prixTtc);
  151.                         $distributionCart->setPrixHt($prixHt);
  152.                         $this->em->persist($distributionCart);
  153.                         $this->em->flush();
  154.                         return array(
  155.                             'success' => true,
  156.                             'id_distribution' => $distributionCart->getId()
  157.                         );
  158.                     }
  159.                     return array(
  160.                         'form' => $form->createView(),
  161.                         'is_show' => true,
  162.                         'displayForFlyer' => $displayForFlyer,
  163.                         'distributionCart' => $distributionCart,
  164.                     );
  165.                 }else{
  166.                     return array(
  167.                         'is_show'=>false,
  168.                         'displayForFlyer'=>$displayForFlyer
  169.                     );
  170.                 }
  171.             }
  172.             return array(
  173.                 'is_show'=>true,
  174.                 'displayForFlyer'=>$displayForFlyer
  175.             );
  176.         }else{
  177.             return array(
  178.                 'is_show'=>false
  179.             );
  180.         }
  181.     }
  182.     public function addToCart($id){
  183.         $cart $this->cartService->getCartCurrent();
  184. //        // check is exist product flayer
  185. //        if($cart && $this->cartService->isProductFlyer($cart->getId())){
  186.         if($cart){
  187.             $distributionCart $this->em->getRepository(DistributionCart::class)->find($id);
  188.             if($distributionCart){
  189.                 $distributionCart->setCart($cart);
  190.                 $this->em->persist($distributionCart);
  191.                 $this->em->flush();
  192.                 $this->cartService->updatePriceCart($cart);
  193.                 return true;
  194.             }
  195.         }
  196.         return false;
  197.     }
  198.     public function delete($request,$id){
  199.         $cart $this->cartService->getCartCurrent();
  200.         if(!$cart){
  201.             return array(
  202.                 'delete'=>false
  203.             );
  204.         }
  205.         $distributionCart $this->em->getRepository(DistributionCart::class)->findOneBy(array('cart'=>$cart->getId(),'id'=>$id));
  206.         if($distributionCart) {
  207.             $distributionCart->setCart(null);
  208.             $this->em->persist($distributionCart);
  209.             $this->em->flush();
  210.             $this->cart_service->updatePriceCart($cart);
  211.             return array(
  212.                 'delete'=>true
  213.             );
  214.         }else{
  215.             return array(
  216.                 'delete'=>false
  217.             );
  218.         }
  219.     }
  220. }