mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
Merge 529ad5d0a6 into cbb32838fb
This commit is contained in:
commit
36c0b1b7b8
3 changed files with 44 additions and 1 deletions
|
|
@ -6,7 +6,7 @@ sylius_grid:
|
||||||
options:
|
options:
|
||||||
class: "%sylius.model.order.class%"
|
class: "%sylius.model.order.class%"
|
||||||
repository:
|
repository:
|
||||||
method: createCriteriaAwareSearchListQueryBuilder
|
method: createCriteriaAwareGridListQueryBuilder
|
||||||
arguments:
|
arguments:
|
||||||
criteria: $criteria
|
criteria: $criteria
|
||||||
sorting:
|
sorting:
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,42 @@ class OrderRepository extends BaseOrderRepository implements OrderRepositoryInte
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function createGridListQueryBuilder(): QueryBuilder
|
||||||
|
{
|
||||||
|
return $this->createQueryBuilder('o')
|
||||||
|
->leftJoin('o.customer', 'customer')
|
||||||
|
->andWhere('o.state != :state')
|
||||||
|
->setParameter('state', OrderInterface::STATE_CART)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createCriteriaAwareGridListQueryBuilder(?array $criteria): QueryBuilder
|
||||||
|
{
|
||||||
|
if ($criteria === null) {
|
||||||
|
return $this->createGridListQueryBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
$hasProductCriteria = '' !== ($criteria['product'] ?? '');
|
||||||
|
$hasVariantCriteria = '' !== ($criteria['variant'] ?? '');
|
||||||
|
|
||||||
|
$queryBuilder = $this->createGridListQueryBuilder();
|
||||||
|
|
||||||
|
if ($hasVariantCriteria || $hasProductCriteria) {
|
||||||
|
$queryBuilder
|
||||||
|
->leftJoin('o.items', 'item')
|
||||||
|
->leftJoin('item.variant', 'variant')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($hasProductCriteria) {
|
||||||
|
$queryBuilder
|
||||||
|
->leftJoin('variant.product', 'product')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $queryBuilder;
|
||||||
|
}
|
||||||
|
|
||||||
public function createCriteriaAwareSearchListQueryBuilder(?array $criteria): QueryBuilder
|
public function createCriteriaAwareSearchListQueryBuilder(?array $criteria): QueryBuilder
|
||||||
{
|
{
|
||||||
if ($criteria === null) {
|
if ($criteria === null) {
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,13 @@ interface OrderRepositoryInterface extends BaseOrderRepositoryInterface
|
||||||
*/
|
*/
|
||||||
public function createCriteriaAwareSearchListQueryBuilder(?array $criteria): QueryBuilder;
|
public function createCriteriaAwareSearchListQueryBuilder(?array $criteria): QueryBuilder;
|
||||||
|
|
||||||
|
public function createGridListQueryBuilder(): QueryBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, mixed>|null $criteria
|
||||||
|
*/
|
||||||
|
public function createCriteriaAwareGridListQueryBuilder(?array $criteria): QueryBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string, mixed>|null $criteria
|
* @param array<string, mixed>|null $criteria
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue