return $this->getUserContainer()->getFactory()->create(); | return $this->getUserContainer()->getFactory()->create(); | ||||
} | } | ||||
public function overrideEntitiesActions(?EntityCollection $entities): void | |||||
public function overrideEntitiesActions(?EntityCollection $entities, string $pageName): void | |||||
{ | { | ||||
foreach ($entities as $entity) { | foreach ($entities as $entity) { | ||||
foreach ($entity->getActions() as $action){ | foreach ($entity->getActions() as $action){ |
return $repositoryQuery; | return $repositoryQuery; | ||||
} | } | ||||
public function overrideEntitiesActions(?EntityCollection $entities): void | |||||
public function overrideEntitiesActions(?EntityCollection $entities, string $pageName): void | |||||
{ | { | ||||
$context = $this->get(AdminContextProvider::class)->getContext(); | $context = $this->get(AdminContextProvider::class)->getContext(); | ||||
$adminUrlGenerator = $this->get(AdminUrlGenerator::class); | $adminUrlGenerator = $this->get(AdminUrlGenerator::class); |
public function processBeforePersistProductFamilySectionInterface(EntityManagerEvent $event) | public function processBeforePersistProductFamilySectionInterface(EntityManagerEvent $event) | ||||
{ | { | ||||
$productFamilySectionProperty = $event->getEntity(); | |||||
if($productFamilySectionProperty instanceof ProductFamilySectionPropertyInterface) { | |||||
$section = $productFamilySectionProperty->getSection(); | |||||
if($productFamilySectionProperty->getStatus() == 1) { | |||||
$productCategoryArray = $productFamilySectionProperty->getProductFamily()->getProductCategories(); | |||||
foreach($productCategoryArray as $productCategory) { | |||||
if($productCategory->getSection() == $section) { | |||||
// mise à jour du statut | |||||
$productCategory->setStatus(1); | |||||
$this->entityManager->update($productCategory); | |||||
// mise à jour du statut du parent | |||||
$productCategoryParent = $productCategory->getParent(); | |||||
if($productCategoryParent) { | |||||
$productCategoryParent->setStatus(1); | |||||
$this->entityManager->update($productCategoryParent); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
//TODO à supprimer déplacer dans le script d'import, à remplacer par une alerte à l'édition d'un produit | |||||
} | } | ||||
} | } |
return $query->findOne(); | return $query->findOne(); | ||||
} | } | ||||
public function getAllByDevAlias(string $devAlias): array | |||||
public function getByDevAlias(string $devAlias): array | |||||
{ | { | ||||
$query = $this->createDefaultQuery(); | $query = $this->createDefaultQuery(); | ||||
$query->filterByDevAlias($devAlias); | $query->filterByDevAlias($devAlias); |
public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface | public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface | ||||
{ | { | ||||
$query->filterIsOnlineAndOffline(); | |||||
$this->addFilterBySectionOptionnal($query); | $this->addFilterBySectionOptionnal($query); | ||||
$this->addFilterByMerchantViaSectionOptionnal($query); | $this->addFilterByMerchantViaSectionOptionnal($query); | ||||
return $query->find(); | return $query->find(); | ||||
} | } | ||||
//TODO ajouter status en donné de contexte pour éviter ce truc | |||||
public function getByCategoryOnlineAndOffline( | |||||
ProductCategoryInterface $productCategory, | |||||
$query = null | |||||
) { | |||||
$query = $this->createDefaultQuery($query); | |||||
$query | |||||
->filterByProductCategory($productCategory); | |||||
return $query->find(); | |||||
} | |||||
// getProductFamiliesNovelties | // getProductFamiliesNovelties | ||||
public function getNovelty($user = null, $organizeByParentCategory = true, $query = null) | public function getNovelty($user = null, $organizeByParentCategory = true, $query = null) | ||||
{ | { |