use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; | use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto; | use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto; | ||||
use Lc\SovBundle\Component\EntityComponent; | use Lc\SovBundle\Component\EntityComponent; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Solver\Setting\SettingSolver; | use Lc\SovBundle\Solver\Setting\SettingSolver; | ||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
use Symfony\Component\HttpFoundation\Response; | use Symfony\Component\HttpFoundation\Response; | ||||
return $responseParameters; | return $responseParameters; | ||||
} | } | ||||
public function createIndexQueryBuilder( | |||||
public function createIndexRepositoryQuery( | |||||
SearchDto $searchDto, | SearchDto $searchDto, | ||||
EntityDto $entityDto, | EntityDto $entityDto, | ||||
FieldCollection $fields, | FieldCollection $fields, | ||||
FilterCollection $filters | FilterCollection $filters | ||||
): QueryBuilder { | |||||
$queryBuilder = parent::createIndexQueryBuilder( | |||||
): RepositoryQueryInterface { | |||||
$repositoryQuery = parent::createIndexRepositoryQuery( | |||||
$searchDto, | $searchDto, | ||||
$entityDto, | $entityDto, | ||||
$fields, | $fields, | ||||
$filters | $filters | ||||
); | ); | ||||
if ($this->isInstanceOf(FilterMerchantInterface::class)) { | |||||
$queryBuilder->andWhereMerchant('entity', $this->get(MerchantResolver::class)->getCurrent()); | |||||
} | |||||
if ($this->isInstanceOf(FilterMultipleMerchantsInterface::class)) { | |||||
$queryBuilder->andWhere(':merchant MEMBER OF entity.merchants'); | |||||
$queryBuilder->setParameter('merchant', $this->get(MerchantResolver::class)->getCurrent()); | |||||
if ($this->isInstanceOf(FilterMerchantInterface::class) || $this->isInstanceOf(FilterMultipleMerchantsInterface::class)) { | |||||
$repositoryQuery->filterByMerchant($this->get(MerchantResolver::class)->getCurrent()); | |||||
} | } | ||||
if ($this->isInstanceOf(FilterSectionInterface::class)) { | if ($this->isInstanceOf(FilterSectionInterface::class)) { | ||||
$queryBuilder->andWhereSection('entity', $this->get(SectionResolver::class)->getCurrent()); | |||||
$repositoryQuery->filterBySection($this->get(SectionResolver::class)->getCurrent()); | |||||
} | } | ||||
return $queryBuilder; | |||||
return $repositoryQuery; | |||||
} | } | ||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Factory\Config\TaxRateFactory; | use Lc\CaracoleBundle\Factory\Config\TaxRateFactory; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class TaxRateAdminController extends AbstractAdminController | abstract class TaxRateAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(TaxRateContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | return [ |
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Factory\Config\UnitFactory; | use Lc\CaracoleBundle\Factory\Config\UnitFactory; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class UnitAdminController extends AbstractAdminController | abstract class UnitAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(UnitContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { |
use Lc\CaracoleBundle\Model\Order\OrderPaymentModel; | use Lc\CaracoleBundle\Model\Order\OrderPaymentModel; | ||||
use Lc\CaracoleBundle\Model\User\UserMerchantInterface; | use Lc\CaracoleBundle\Model\User\UserMerchantInterface; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
abstract class CreditHistoryAdminController extends AbstractAdminController | abstract class CreditHistoryAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(CreditHistoryContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function overrideGlobalActions(?ActionCollection $actions): void | public function overrideGlobalActions(?ActionCollection $actions): void | ||||
{ | { | ||||
parent::overrideGlobalActions($actions); | parent::overrideGlobalActions($actions); |
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\StatusField; | use Lc\SovBundle\Field\StatusField; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class MerchantAdminController extends AbstractAdminController | abstract class MerchantAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(MerchantContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
$panel = parent::configureFields($pageName); | $panel = parent::configureFields($pageName); |
use Lc\CaracoleBundle\Resolver\SectionResolver; | use Lc\CaracoleBundle\Resolver\SectionResolver; | ||||
use Lc\SovBundle\Container\Newsletter\NewsletterContainer; | use Lc\SovBundle\Container\Newsletter\NewsletterContainer; | ||||
use Lc\SovBundle\Controller\Newsletter\NewsletterAdminController as SovNewsletterAdminController; | use Lc\SovBundle\Controller\Newsletter\NewsletterAdminController as SovNewsletterAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class NewsletterAdminController extends SovNewsletterAdminController | abstract class NewsletterAdminController extends SovNewsletterAdminController | ||||
{ | { |
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Container\Order\OrderShopContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Model\Config\TaxRateModel; | use Lc\CaracoleBundle\Model\Config\TaxRateModel; | ||||
use Lc\CaracoleBundle\Model\Config\UnitModel; | use Lc\CaracoleBundle\Model\Config\UnitModel; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
abstract class OrderShopAdminController extends AbstractAdminController | abstract class OrderShopAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(OrderShopContainer::class)->getRepositoryQuery(); | |||||
} | |||||
} | } |
<?php | |||||
namespace Lc\CaracoleBundle\Controller\Order; | |||||
use Lc\CaracoleBundle\Container\Order\OrderStatusContainer; | |||||
use Lc\CaracoleBundle\Controller\AbstractAdminController; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | |||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class OrderStatusAdminController extends AbstractAdminController | |||||
{ | |||||
use AdminControllerTrait; | |||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(OrderStatusContainer::class)->getRepositoryQuery(); | |||||
} | |||||
} |
use Lc\CaracoleBundle\Container\PointSale\PointSaleContainer; | use Lc\CaracoleBundle\Container\PointSale\PointSaleContainer; | ||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class PointSaleAdminController extends AbstractAdminController | abstract class PointSaleAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(PointSaleContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return $this->getPointSaleContainer() | return $this->getPointSaleContainer() |
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\DateTimeField; | use EasyCorp\Bundle\EasyAdminBundle\Field\DateTimeField; | ||||
use Lc\CaracoleBundle\Container\Product\ProductCategoryContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\StatusField; | use Lc\SovBundle\Field\StatusField; | ||||
use Lc\SovBundle\Field\ToggleField; | use Lc\SovBundle\Field\ToggleField; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class ProductCategoryAdminController extends AbstractAdminController | abstract class ProductCategoryAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(ProductCategoryContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return array_merge( | return array_merge( |
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Container\Order\OrderShopContainer; | use Lc\CaracoleBundle\Container\Order\OrderShopContainer; | ||||
use Lc\CaracoleBundle\Container\Product\ProductFamilyContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Doctrine\Extension\FilterSectionInterface; | use Lc\CaracoleBundle\Doctrine\Extension\FilterSectionInterface; | ||||
use Lc\CaracoleBundle\Field\Address\AddressField; | use Lc\CaracoleBundle\Field\Address\AddressField; | ||||
use Lc\SovBundle\Field\BooleanField; | use Lc\SovBundle\Field\BooleanField; | ||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\StatusField; | use Lc\SovBundle\Field\StatusField; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Symfony\Component\HttpFoundation\RequestStack; | use Symfony\Component\HttpFoundation\RequestStack; | ||||
use Symfony\Component\HttpFoundation\Response; | use Symfony\Component\HttpFoundation\Response; | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder | |||||
{ | |||||
$queryBuilder = parent::createIndexQueryBuilder($searchDto, $entityDto, $fields, $filters); | |||||
$queryBuilder->leftJoin('entity.productFamilySectionProperties', 'pfsp'); | |||||
$queryBuilder->andWhereSection('pfsp', $this->getSectionCurrent()); | |||||
$queryBuilder->addOrderBy('entity.id'); | |||||
return $queryBuilder; | |||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(ProductFamilyContainer::class)->getRepositoryQuery(); | |||||
} | } | ||||
// public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder | |||||
// { | |||||
// $queryBuilder = parent::createIndexQueryBuilder($searchDto, $entityDto, $fields, $filters); | |||||
// | |||||
// $queryBuilder->leftJoin('entity.productFamilySectionProperties', 'pfsp'); | |||||
// $queryBuilder->andWhereSection('pfsp', $this->getSectionCurrent()); | |||||
// $queryBuilder->addOrderBy('entity.id'); | |||||
// return $queryBuilder; | |||||
// } | |||||
public function configureResponseParameters(KeyValueStore $responseParameters): KeyValueStore | public function configureResponseParameters(KeyValueStore $responseParameters): KeyValueStore | ||||
{ | { | ||||
$responseParameters = parent::configureResponseParameters($responseParameters); | $responseParameters = parent::configureResponseParameters($responseParameters); |
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Container\Reduction\ReductionCartContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Model\Config\TaxRateModel; | use Lc\CaracoleBundle\Model\Config\TaxRateModel; | ||||
use Lc\CaracoleBundle\Model\Config\UnitModel; | use Lc\CaracoleBundle\Model\Config\UnitModel; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
abstract class ReductionCartAdminController extends AbstractAdminController | abstract class ReductionCartAdminController extends AbstractAdminController | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(ReductionCartContainer::class)->getRepositoryQuery(); | |||||
} | |||||
} | } |
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Container\Reduction\ReductionCatalogContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Model\Config\TaxRateModel; | use Lc\CaracoleBundle\Model\Config\TaxRateModel; | ||||
use Lc\CaracoleBundle\Model\Config\UnitModel; | use Lc\CaracoleBundle\Model\Config\UnitModel; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
abstract class ReductionCatalogAdminController extends AbstractAdminController | abstract class ReductionCatalogAdminController extends AbstractAdminController | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(ReductionCatalogContainer::class)->getRepositoryQuery(); | |||||
} | |||||
} | } |
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\CaracoleBundle\Container\Reduction\ReductionCreditContainer; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Model\Config\TaxRateModel; | use Lc\CaracoleBundle\Model\Config\TaxRateModel; | ||||
use Lc\CaracoleBundle\Model\Config\UnitModel; | use Lc\CaracoleBundle\Model\Config\UnitModel; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
abstract class ReductionCreditAdminController extends AbstractAdminController | abstract class ReductionCreditAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(ReductionCreditContainer::class)->getRepositoryQuery(); | |||||
} | |||||
} | } |
use Lc\CaracoleBundle\Factory\Section\OpeningFactory; | use Lc\CaracoleBundle\Factory\Section\OpeningFactory; | ||||
use Lc\CaracoleBundle\Resolver\SectionResolver; | use Lc\CaracoleBundle\Resolver\SectionResolver; | ||||
use Lc\SovBundle\Controller\AbstractAdminController; | use Lc\SovBundle\Controller\AbstractAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class OpeningAdminController extends AbstractAdminController | abstract class OpeningAdminController extends AbstractAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(OpeningContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
$fields = parent::configureFields($pageName); | $fields = parent::configureFields($pageName); |
use Lc\SovBundle\Field\BooleanField; | use Lc\SovBundle\Field\BooleanField; | ||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\StatusField; | use Lc\SovBundle\Field\StatusField; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Symfony\Component\HttpFoundation\Request; | use Symfony\Component\HttpFoundation\Request; | ||||
use Symfony\Component\HttpFoundation\Session\SessionFactory; | use Symfony\Component\HttpFoundation\Session\SessionFactory; | ||||
use Symfony\Component\Routing\Annotation\Route; | use Symfony\Component\Routing\Annotation\Route; | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(SectionContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return array_merge( | return array_merge( |
namespace Lc\CaracoleBundle\Controller\Site; | namespace Lc\CaracoleBundle\Controller\Site; | ||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Factory\Site\NewsFactory; | |||||
use Lc\CaracoleBundle\Resolver\MerchantResolver; | |||||
use Lc\CaracoleBundle\Resolver\SectionResolver; | use Lc\CaracoleBundle\Resolver\SectionResolver; | ||||
use Lc\SovBundle\Container\Site\NewsContainer; | use Lc\SovBundle\Container\Site\NewsContainer; | ||||
use Lc\SovBundle\Controller\Site\NewsAdminController as SovNewsAdminController; | use Lc\SovBundle\Controller\Site\NewsAdminController as SovNewsAdminController; |
use Lc\CaracoleBundle\Resolver\SectionResolver; | use Lc\CaracoleBundle\Resolver\SectionResolver; | ||||
use Lc\SovBundle\Container\Site\PageContainer; | use Lc\SovBundle\Container\Site\PageContainer; | ||||
use Lc\SovBundle\Controller\Site\PageAdminController as SovPageAdminController; | use Lc\SovBundle\Controller\Site\PageAdminController as SovPageAdminController; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
abstract class PageAdminController extends SovPageAdminController | abstract class PageAdminController extends SovPageAdminController | ||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function createEntity(string $entityFqcn) | public function createEntity(string $entityFqcn) | ||||
{ | { | ||||
return $this->getPageContainer() | return $this->getPageContainer() |
namespace Lc\CaracoleBundle\Controller\Ticket; | namespace Lc\CaracoleBundle\Controller\Ticket; | ||||
use App\Entity\Ticket\Ticket; | |||||
use Lc\CaracoleBundle\Controller\AdminControllerTrait; | use Lc\CaracoleBundle\Controller\AdminControllerTrait; | ||||
use Lc\CaracoleBundle\Resolver\MerchantResolver; | use Lc\CaracoleBundle\Resolver\MerchantResolver; | ||||
use Lc\SovBundle\Container\Ticket\TicketContainer; | use Lc\SovBundle\Container\Ticket\TicketContainer; | ||||
use Lc\SovBundle\Controller\Ticket\TicketAdminController as SovTicketAdminController; | use Lc\SovBundle\Controller\Ticket\TicketAdminController as SovTicketAdminController; | ||||
use Lc\CaracoleBundle\Factory\Ticket\TicketFactory; | use Lc\CaracoleBundle\Factory\Ticket\TicketFactory; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
class TicketAdminController extends SovTicketAdminController | |||||
abstract class TicketAdminController extends SovTicketAdminController | |||||
{ | { | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
use Lc\SovBundle\Field\BooleanField; | use Lc\SovBundle\Field\BooleanField; | ||||
use Lc\SovBundle\Field\ToggleField; | use Lc\SovBundle\Field\ToggleField; | ||||
use Lc\SovBundle\Model\User\UserInterface; | use Lc\SovBundle\Model\User\UserInterface; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | use Lc\SovBundle\Translation\TranslatorAdmin; | ||||
use Symfony\Component\HttpFoundation\Response; | use Symfony\Component\HttpFoundation\Response; | ||||
use AdminControllerTrait; | use AdminControllerTrait; | ||||
public function getRepositoryQuery() :RepositoryQueryInterface | |||||
{ | |||||
return $this->get(UserMerchantContainer::class)->getRepositoryQuery(); | |||||
} | |||||
public function overrideEntitiesActions(?EntityCollection $entities): void | public function overrideEntitiesActions(?EntityCollection $entities): void | ||||
{ | { | ||||
$context = $this->get(AdminContextProvider::class)->getContext(); | $context = $this->get(AdminContextProvider::class)->getContext(); |
use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto; | use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto; | ||||
use Lc\SovBundle\Field\Filter\AssociationFilter; | use Lc\SovBundle\Field\Filter\AssociationFilter; | ||||
use Lc\SovBundle\Field\Filter\FilterTrait; | use Lc\SovBundle\Field\Filter\FilterTrait; | ||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | use Symfony\Bridge\Doctrine\Form\Type\EntityType; | ||||
use Symfony\Component\Form\FormBuilderInterface; | use Symfony\Component\Form\FormBuilderInterface; | ||||
} | } | ||||
public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, $filteredValue = null) | |||||
public function applyFilter(RepositoryQueryInterface $repositoryQuery, string $fieldProperty, $filteredValue = null) | |||||
{ | { | ||||
if ($filteredValue !== null) { | if ($filteredValue !== null) { | ||||
$queryBuilder->leftJoin('entity.productCategories', 'product_categories'); | |||||
$queryBuilder->andWhere(':' . $fieldProperty . ' MEMBER OF entity.' . $fieldProperty . ' OR product_categories.parent = :' . $fieldProperty); | |||||
$queryBuilder->setParameter($fieldProperty, $filteredValue); | |||||
$repositoryQuery->filterByProductCategory($filteredValue); | |||||
} | } | ||||
} | } |
/** | /** | ||||
* @ORM\MappedSuperclass() | * @ORM\MappedSuperclass() | ||||
*/ | */ | ||||
abstract class ProductFamilyModel extends AbstractFullEntity implements ProductPropertyInterface, PriceInterface, ProductFamilyInterface | |||||
abstract class ProductFamilyModel extends AbstractFullEntity implements ProductPropertyInterface, PriceInterface, ProductFamilyInterface, FilterSectionInterface | |||||
{ | { | ||||
use ProductPropertyTrait; | use ProductPropertyTrait; | ||||
{ | { | ||||
parent::__construct($repository, 'r', $paginator); | parent::__construct($repository, 'r', $paginator); | ||||
} | } | ||||
public function filterByOrderShop(OrderShopInterface $orderShop): self | public function filterByOrderShop(OrderShopInterface $orderShop): self | ||||
{ | { | ||||
return $this | return $this |
return $this; | return $this; | ||||
} | } | ||||
public function filterBySection(SectionInterface $section) | |||||
public function filterBySection(SectionInterface $section,bool $addSelectProductFamilySectionProperties = true) | |||||
{ | { | ||||
$this->joinProductFamilySectionProperties(); | |||||
$this->joinProductFamilySectionProperties($addSelectProductFamilySectionProperties); | |||||
$this->andWhereSection('pfsp', $section); | $this->andWhereSection('pfsp', $section); | ||||
$this->andWhere('pfsp.status = 1'); | $this->andWhere('pfsp.status = 1'); | ||||
} | } |
class ProductRepositoryQuery extends AbstractRepositoryQuery | class ProductRepositoryQuery extends AbstractRepositoryQuery | ||||
{ | { | ||||
protected bool $isJoinProductFamily =false; | protected bool $isJoinProductFamily =false; | ||||
protected bool $isJoinProductFamilySectionProperties =false; | |||||
public function __construct(ProductRepository $repository, PaginatorInterface $paginator) | public function __construct(ProductRepository $repository, PaginatorInterface $paginator) | ||||
{ | { | ||||
} | } | ||||
public function filterBySection(SectionInterface $section):self | public function filterBySection(SectionInterface $section):self | ||||
{ | |||||
$this->joinProductFamilySectionProperties(false); | |||||
$this->andWhereSection('pfsp', $section); | |||||
$this->andWhere('pfsp.status = 1'); | |||||
return $this; | |||||
} | |||||
public function joinProductFamilySectionProperties(bool $addSelect = true): self | |||||
{ | { | ||||
$this->joinProductFamily(); | $this->joinProductFamily(); | ||||
$this->andWhereSection('pf', $section); | |||||
if (!$this->isJoinProductFamilySectionProperties) { | |||||
$this->isJoinProductFamilySectionProperties = true; | |||||
$this->leftJoin('pf.productFamilySectionProperties', 'pfsp'); | |||||
if ($addSelect) { | |||||
$this->addSelect('pfsp'); | |||||
} | |||||
} | |||||
return $this; | return $this; | ||||
} | } | ||||
public function filterIsOnline():self | public function filterIsOnline():self | ||||
{ | { | ||||
$this->joinProductFamily(); | $this->joinProductFamily(); |