merchantUtils = $merchantUtils; } public static function getSubscribedEvents() { return array( 'easy_admin.pre_persist' => array('persistCommonProperty'), 'easy_admin.post_update' => array('updateCommonProperty'), ); } public function persistCommonProperty(GenericEvent $event) { $entity = $event->getSubject(); $em = $event->getArgument('em'); $entityRepo = $em->getRepository(get_class($entity)); if ($entity instanceof StatusInterface) { $this->setStatusProperty($entity); } if ($entity instanceof SortableInterface) { $this->setSortableProperty($entity, $entityRepo); } if ($entity instanceof FilterMerchantInterface) { $this->setMerchantProperty($entity); } if ($entity instanceof FilterMultipleMerchantsInterface) { $this->setMultipleMerchantProperty($entity); } } public function updateCommonProperty(GenericEvent $event) { /* $this->setUpdated($entity); $this->setAddressCreatedBy($entity) ;*/ } private function setStatusProperty($entity){ $entity->setStatus(1); return $entity; } private function setSortableProperty($entity, $entityRepo){ if ($entity instanceof TreeInterface) { if ($entity->getParent()) { $total = $entityRepo->count(array('status' => 1, 'parent' => $entity->getParent()->getId())); $entity->setPosition($entity->getParent()->getId() . '_' . $total); } else { $total = $entityRepo->count(array('status' => 1, 'parent' => null)); $entity->setPosition($total); } } else { $total = $entityRepo->count(array('status' => 1)); $entity->setPosition($total); } return $entity; } private function setMerchantProperty($entity){ $entity->setMerchant($this->merchantUtils->getMerchantCurrent()); } private function setMultipleMerchantProperty($entity){ if ($entity->getMerchants()->isEmpty()) { $entity->addMerchant($this->merchantUtils->getMerchantCurrent()); } } }