Ver código fonte

[Frontend] Cookies : adaptations

feature/export_comptable
Guillaume 4 anos atrás
pai
commit
1eb3e6839f
2 arquivos alterados com 37 adições e 11 exclusões
  1. +22
    -3
      ShopBundle/Controller/Frontend/CartController.php
  2. +15
    -8
      ShopBundle/Services/OrderUtils.php

+ 22
- 3
ShopBundle/Controller/Frontend/CartController.php Ver arquivo

@@ -11,13 +11,18 @@ use Lc\ShopBundle\Context\OrderUtilsInterface;
use Lc\ShopBundle\Context\ProductFamilyInterface;
use Lc\ShopBundle\Context\ReductionCartInterface;
use Lc\ShopBundle\Model\OrderReductionCart;
use Lc\ShopBundle\Services\UserUtils;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGenerator;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Security;

class CartController extends BaseController
{
protected $orderUtils ;
protected $userUtils ;
protected $router ;
protected $productFamilyRepository ;
protected $orderProductRepository ;

@@ -25,21 +30,35 @@ class CartController extends BaseController
protected $orderProducts = [] ;


public function __construct(EntityManagerInterface $em, Security $security, MerchantUtilsInterface $merchantUtils, OrderUtilsInterface $orderUtils)
public function __construct(EntityManagerInterface $em, Security $security, MerchantUtilsInterface $merchantUtils, OrderUtilsInterface $orderUtils,
UserUtils $userUtils, UrlGeneratorInterface $router)
{
parent::__construct($em, $security, $merchantUtils);
$this->orderUtils = $orderUtils ;
$this->userUtils = $userUtils ;
$this->router = $router ;
$this->productFamilyRepository = $this->em->getRepository($this->em->getClassMetaData(ProductFamilyInterface::class)->getName()) ;
$this->orderProductRepository = $this->em->getRepository($this->em->getClassMetaData(OrderProductInterface::class)->getName()) ;
}

public function addProductFamily(Request $request)
{
$user = $this->security->getUser() ;
$visitor = $this->userUtils->getVisitorCurrent() ;

$return = [] ;
$data = $request->request->all() ;

if(isset($data['order_products']['id_product_family'])) {
$idProductFamily = $data['order_products']['id_product_family'] ;
$this->productFamily = $this->productFamilyRepository->find($idProductFamily) ;

// alerte si cookies non acceptés
if (!$user && !$visitor) {
$this->addFlash('error', 'Vous devez <a href="'.$this->router->generate('frontend_page', ['devAlias' => 'politique-de-confidentialite']).'">accepter les cookies</a> ou vous <a href="'.$this->router->generate('fos_user_security_login').'">connecter</a> pour ajouter un produit.');
return false ;
}

if($this->productFamily) {
$form = $this->createForm(OrderProductsType::class, ['id_product_family' => $this->productFamily->getId()]);
$form->handleRequest($request);
@@ -49,8 +68,8 @@ class CartController extends BaseController
$data = $form->getData() ;
foreach($data as $orderProduct) {
if($orderProduct instanceof OrderProductInterface) {
$this->orderUtils->addOrderProduct($orderShop, $orderProduct) ;
if($orderProduct->getQuantityOrder() > 0) {
$addOrderProduct = $this->orderUtils->addOrderProduct($orderShop, $orderProduct) ;
if($addOrderProduct && $orderProduct->getQuantityOrder() > 0) {
$this->orderProducts[] = $orderProduct ;
}
}

+ 15
- 8
ShopBundle/Services/OrderUtils.php Ver arquivo

@@ -33,10 +33,11 @@ class OrderUtils
protected $priceUtils;
protected $productFamilyUtils;
protected $documentUtils ;
protected $session ;

public function __construct(EntityManagerInterface $em, Security $security, UserUtils $userUtils,
MerchantUtilsInterface $merchantUtils, PriceUtils $priceUtils, ProductFamilyUtilsInterface $productFamilyUtils,
DocumentUtils $documentUtils)
DocumentUtils $documentUtils, SessionInterface $session)
{
$this->em = $em;
$this->security = $security;
@@ -46,6 +47,7 @@ class OrderUtils
$this->priceUtils = $priceUtils;
$this->productFamilyUtils = $productFamilyUtils;
$this->documentUtils = $documentUtils ;
$this->session = $session ;
}


@@ -91,10 +93,6 @@ class OrderUtils
}
}

if (!$user && !$visitor) {
$this->session->getFlashBag()->add('error', 'Vous devez accepter les cookies ou vous connecter pour avoir un panier sur le site.');
}

return $orderShop;
}

@@ -129,10 +127,15 @@ class OrderUtils

public function addOrderProduct($orderShop, $orderProductAdd, $persist = true)
{
$return = false ;

$user = $this->security->getUser() ;
$visitor = $this->userUtils->getVisitorCurrent() ;

if(!$orderShop) {
$orderShop = $this->createOrderShop([
'user' => $this->security->getUser(),
'visitor' => $this->userUtils->getVisitorCurrent(),
'user' => $user,
'visitor' => $visitor,
'merchant' => $this->merchantUtils->getMerchantCurrent()
]);
}
@@ -170,6 +173,7 @@ class OrderUtils
}

$updated = true;
$return = true ;

break;
}
@@ -194,9 +198,12 @@ class OrderUtils
if ($persist) {
$this->em->flush();
}
}

$return = true ;
}
}
return $return ;
}

public function compareOrderProductReductionCatalog($orderProductReductionCatalog1, $orderProductReductionCatalog2)

Carregando…
Cancelar
Salvar