entityManager = $entityManager; $this->productCategorySolver = $productCategorySolver; $this->flashBagTranslator = $flashBagTranslator; } public function setOnlineIfOnlineProductfamily(ProductCategoryInterface $productCategory) { if ($this->productCategorySolver->hasOnlineProductFamily($productCategory)) { if(!$productCategory->getStatus()) { $productCategory->setStatus(1); $this->entityManager->update($productCategory); $this->flashBagTranslator->add('success', 'setOnline', 'ProductCategory', array('%category%' => $productCategory, '%section%' => $productCategory->getSection())); } // mise à jour du statut du parent $productCategoryParent = $productCategory->getParent(); if ($productCategoryParent) { if(!$productCategory->getStatus()) { $productCategoryParent->setStatus(1); $this->entityManager->update($productCategoryParent); } } } } public function setOfflineIfOfflineProductfamily(ProductCategoryInterface $productCategory) { if (!$this->productCategorySolver->hasOnlineProductFamily($productCategory)) { if($productCategory->getStatus()) { $productCategory->setStatus(0); $this->entityManager->update($productCategory); $this->flashBagTranslator->add('info', 'setOffline', 'ProductCategory', array('%category%' => $productCategory, '%section%' => $productCategory->getSection())); } // mise à jour du statut du parent $productCategoryParent = $productCategory->getParent(); if ($productCategoryParent && !$this->productCategorySolver->hasOnlineProductFamily($productCategoryParent)) { if($productCategory->getStatus()) { $productCategoryParent->setStatus(0); $this->entityManager->update($productCategoryParent); } } } } }