src/EventSubscriber/GHReentrenamientoProcesoSubscriber.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\Form\FormEvent;
  6. use Symfony\Component\Form\FormEvents;
  7. class GHReentrenamientoProcesoSubscriber implements EventSubscriberInterface
  8. {
  9.     private $entityManager;
  10.     public function __construct(EntityManagerInterface $entityManager){
  11.         $this->entityManager $entityManager;
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             FormEvents::PRE_SUBMIT => 'preSubmit',
  17.         ];
  18.     }
  19.     public function preSubmit(FormEvent $event): void{
  20.         $data $event->getData();
  21.         if (!isset($data['parProceso']) || empty($data['parProceso'])) {
  22.             return;
  23.         }
  24.         $idProceso intval($data['parProceso']);
  25.         $event->getForm()->add('personaResponsable',\Symfony\Bridge\Doctrine\Form\Type\EntityType::class, ['class' => \App\Entity\TerPersona::class, 'query_builder' => function (\Doctrine\ORM\EntityRepository $er) use($idProceso) {
  26.             return $er->createQueryBuilder('p')
  27.                 ->leftJoin('p.perfilCargo''pc')
  28.                 ->leftJoin('pc.ParProceso''pro')
  29.                 ->leftJoin('p.estado''e')
  30.                 ->where('p.id is null')
  31.                 ->orWhere('pro.id = :idProceso')
  32.                 ->andWhere('e.id  = 1')
  33.                 ->setParameter('idProceso'$idProceso)
  34.                 ->orderBy('p.nombres''ASC');
  35.         }, 'label' => 'Responsable',
  36.             'attr' => ['class' => 'form-control'], 'placeholder' => 'Seleccione una Opción.']);
  37.         dump($idProceso);
  38.         $event->setData($data);
  39.     }
  40. }