Browse Source

OrderShopStore : gestion param sectionMainOrderShop

packProduct
Guillaume 3 years ago
parent
commit
04ef4517c6
2 changed files with 31 additions and 3 deletions
  1. +23
    -3
      Repository/Order/OrderShopRepositoryQuery.php
  2. +8
    -0
      Repository/Order/OrderShopStore.php

+ 23
- 3
Repository/Order/OrderShopRepositoryQuery.php View File

@@ -9,6 +9,7 @@ use Lc\CaracoleBundle\Model\Order\OrderPaymentInterface;
use Lc\CaracoleBundle\Model\Product\ProductInterface;
use Lc\CaracoleBundle\Model\Reduction\ReductionCartInterface;
use Lc\CaracoleBundle\Model\Reduction\ReductionCreditInterface;
use Lc\CaracoleBundle\Model\Section\SectionInterface;
use Lc\CaracoleBundle\Model\User\VisitorInterface;
use Lc\CaracoleBundle\Repository\SectionRepositoryQueryTrait;
use Lc\SovBundle\Model\User\UserInterface;
@@ -32,6 +33,7 @@ class OrderShopRepositoryQuery extends AbstractRepositoryQuery
protected bool $isJoinDeliveryPointSale = false;
protected bool $isJoinOrderPayment = false;
protected bool $isFilteredByStatus = false;
protected bool $isJoinMainOrderShop = false;

public function __construct(OrderShopRepository $repository, PaginatorInterface $paginator)
{
@@ -267,14 +269,21 @@ class OrderShopRepositoryQuery extends AbstractRepositoryQuery

public function filterIsNotComplementaryOrderShop(): self
{
return $this
->andWhere('.mainOrderShop = false OR .mainOrderShop IS NULL');
return $this->andWhere('.mainOrderShop = false OR .mainOrderShop IS NULL');
}

public function filterIsComplementaryOrderShop(): self
{
return $this->andWhere('.mainOrderShop = true OR .mainOrderShop IS NOT NULL');
}

public function filterSectionMainOrderShop(SectionInterface $section)
{
$this->joinMainOrderShop();

return $this
->andWhere('.mainOrderShop = true OR .mainOrderShop IS NOT NULL');
->andWhere('mainOrderShop.section = :section')
->setParameter('section', $section);
}

public function filterIsNullMainOrderShop(): self
@@ -435,4 +444,15 @@ class OrderShopRepositoryQuery extends AbstractRepositoryQuery
return $this;
}

public function joinMainOrderShop(): self
{
if (!$this->isJoinMainOrderShop) {
$this->isJoinMainOrderShop = true;

return $this
->leftJoin('.mainOrderShop', 'mainOrderShop');
}
return $this;
}

}

+ 8
- 0
Repository/Order/OrderShopStore.php View File

@@ -444,6 +444,14 @@ class OrderShopStore extends AbstractStore
->joinComplementaryOrderShops();
}

if (isset($params['isComplementaryOrderShop']) && $params['isComplementaryOrderShop']) {
$query->filterIsComplementaryOrderShop();

if(isset($params['sectionMainOrderShop']) && $params['sectionMainOrderShop']) {
$query->filterSectionMainOrderShop($params['sectionMainOrderShop']);
}
}

if ((isset($params['excludeComplementaryOrderShops']) && $params['excludeComplementaryOrderShops'])
|| (isset($params['mergeComplementaryOrderShops']) && $params['mergeComplementaryOrderShops'])) {
$query->filterIsNullMainOrderShop();

Loading…
Cancel
Save