|
@@ -5,9 +5,30 @@ namespace FTTHBundle\EventListener;
|
|
|
use Doctrine\Common\EventSubscriber;
|
|
|
use Doctrine\ORM\Event\LifecycleEventArgs;
|
|
|
use FTTHBundle\Entity\NAP;
|
|
|
+use Symfony\Component\Translation\TranslatorInterface;
|
|
|
|
|
|
class NAPAddressSubscriber implements EventSubscriber
|
|
|
{
|
|
|
+ /**
|
|
|
+ * @var TranslatorInterface
|
|
|
+ */
|
|
|
+ private $translator;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @return TranslatorInterface
|
|
|
+ */
|
|
|
+ public function getTranslator()
|
|
|
+ {
|
|
|
+ return $this->translator;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param TranslatorInterface $translator
|
|
|
+ */
|
|
|
+ public function setTranslator($translator)
|
|
|
+ {
|
|
|
+ $this->translator = $translator;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* @return array
|
|
@@ -17,6 +38,7 @@ class NAPAddressSubscriber implements EventSubscriber
|
|
|
return array(
|
|
|
'prePersist',
|
|
|
'preUpdate',
|
|
|
+ 'preRemove'
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -56,4 +78,26 @@ class NAPAddressSubscriber implements EventSubscriber
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param LifecycleEventArgs $args
|
|
|
+ */
|
|
|
+ public function preRemove(LifecycleEventArgs $args)
|
|
|
+ {
|
|
|
+
|
|
|
+ $entity = $args->getEntity();
|
|
|
+ if ($entity instanceof NAP) {
|
|
|
+
|
|
|
+ $em = $args->getEntityManager();
|
|
|
+ $translator = $this->getTranslator();
|
|
|
+
|
|
|
+ $onus = $em->getRepository('FTTHBundle\Entity\ONU')->findByNap($entity);
|
|
|
+
|
|
|
+ $message = $translator->trans('Nap_Delete_Deneid', [], "FTTHBundle");
|
|
|
+
|
|
|
+ if($onus) {
|
|
|
+ throw new \Exception($message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|