@@ -175,7 +175,10 @@ class ProductFamilyController extends AdminController | |||
$this->processProducts($entity); | |||
$this->processPrice($entity); | |||
} | |||
parent::updateEntity($entity); | |||
$this->orderUtils->updatePriceByProductFamily($entity); | |||
} | |||
public function persistProductFamilyEntity($entity, $newForm) |
@@ -70,7 +70,7 @@ class CartController extends BaseController | |||
$form->handleRequest($request); | |||
if ($form->isSubmitted() && $form->isValid()) { | |||
$orderShop = $this->orderUtils->getCartCurrent() ; | |||
$orderShop = $this->orderUtils->getCartCurrent(true) ; | |||
$data = $form->getData() ; | |||
foreach($data as $orderProduct) { | |||
if($orderProduct instanceof OrderProductInterface) { |
@@ -4,6 +4,7 @@ namespace Lc\ShopBundle\Repository; | |||
use Lc\ShopBundle\Context\DefaultRepositoryInterface; | |||
use Lc\ShopBundle\Context\OrderProductInterface; | |||
use Lc\ShopBundle\Model\OrderStatus; | |||
/** | |||
* @method OrderProductInterface|null find($id, $lockMode = null, $lockVersion = null) | |||
@@ -18,5 +19,21 @@ class OrderProductRepository extends BaseRepository implements DefaultRepository | |||
return OrderProductInterface::class; | |||
} | |||
public function findOrderProductsInCartsByProduct($product){ | |||
$qb = $this->createQueryBuilder('e'); | |||
$qb->andWhere('e.product = :product'); | |||
$qb->andWhere('e.redelivery = false OR e.redelivery IS NULL'); | |||
$qb->setParameter('product', $product); | |||
$qb->leftJoin('e.orderShop', 'orderShop'); | |||
$qb->andWhere('orderShop.merchant = :currentMerchant'); | |||
$qb->setParameter('currentMerchant', $this->merchantUtils->getMerchantCurrent()); | |||
$qb->leftJoin('orderShop.orderStatus', 'orderStatus'); | |||
$qb->andWhere('orderStatus.alias IN (:alias)'); | |||
$qb->setParameter('alias',OrderStatus::ALIAS_CART); | |||
return $qb->getQuery()->getResult(); | |||
} | |||
} |
@@ -99,6 +99,7 @@ class OrderUtils | |||
public function addOrderProduct($orderShop, $orderProductAdd, $persist = true) | |||
{ | |||
$return = false; | |||
$user = $this->security->getUser(); |
@@ -21,7 +21,7 @@ trait OrderUtilsCartTrait | |||
} | |||
public function getCartCurrent() | |||
public function getCartCurrent($createIfNotExist = false) | |||
{ | |||
$paramsSearchOrderShop = []; | |||
@@ -63,6 +63,14 @@ trait OrderUtilsCartTrait | |||
} | |||
} | |||
if($createIfNotExist && !$orderShop) { | |||
$orderShop = $this->createOrderShop([ | |||
'user' => $user, | |||
'visitor' => $visitor, | |||
'merchant' => $this->merchantUtils->getMerchantCurrent() | |||
]); | |||
} | |||
return $orderShop; | |||
} | |||