entityManager = $entityManager; $this->productCategorySolver = $productCategorySolver; $this->flashBagTranslator = $flashBagTranslator; } public function setOnlineIfOnlineProductfamily(ProductCategoryInterface $productCategory) { if ($this->productCategorySolver->hasOnlineProductFamily($productCategory)) { $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) { $productCategoryParent->setStatus(1); $this->entityManager->update($productCategoryParent); } } } public function setOfflineIfOfflineProductfamily(ProductCategoryInterface $productCategory) { if (!$this->productCategorySolver->hasOnlineProductFamily($productCategory)) { $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)) { $productCategoryParent->setStatus(0); $this->entityManager->update($productCategoryParent); } } } }