<?php
namespace App\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class GHReentrenamientoProcesoSubscriber implements EventSubscriberInterface
{
private $entityManager;
public function __construct(EntityManagerInterface $entityManager){
$this->entityManager = $entityManager;
}
public static function getSubscribedEvents(): array
{
return [
FormEvents::PRE_SUBMIT => 'preSubmit',
];
}
public function preSubmit(FormEvent $event): void{
$data = $event->getData();
if (!isset($data['parProceso']) || empty($data['parProceso'])) {
return;
}
$idProceso = intval($data['parProceso']);
$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) {
return $er->createQueryBuilder('p')
->leftJoin('p.perfilCargo', 'pc')
->leftJoin('pc.ParProceso', 'pro')
->leftJoin('p.estado', 'e')
->where('p.id is null')
->orWhere('pro.id = :idProceso')
->andWhere('e.id = 1')
->setParameter('idProceso', $idProceso)
->orderBy('p.nombres', 'ASC');
}, 'label' => 'Responsable',
'attr' => ['class' => 'form-control'], 'placeholder' => 'Seleccione una Opción.']);
dump($idProceso);
$event->setData($data);
}
}