src/FormSubscriber/RFSolicitudDocumentoSubscriber.php line 30

Open in your IDE?
  1. <?php
  2. // src/Form/EventListener/AddNameFieldSubscriber.php
  3. namespace App\FormSubscriber;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\Form\Extension\Core\Type\TextType;
  6. use Symfony\Component\Form\FormEvent;
  7. use Symfony\Component\Form\FormEvents;
  8. use Symfony\Component\Form\Form;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. class RFSolicitudDocumentoSubscriber implements EventSubscriberInterface {
  11.     private $entityManager;
  12.     public function __construct(
  13.             EntityManagerInterface $entityManager
  14.     ) {
  15.         $this->entityManager $entityManager;
  16.     }
  17.     public static function getSubscribedEvents(): array {
  18.         // Tells the dispatcher that you want to listen on the form.pre_set_data
  19.         // event and that the preSetData method should be called.
  20.         return [FormEvents::PRE_SUBMIT => 'preSubmit'];
  21.     }
  22.     public function preSubmit(FormEvent $event): void {
  23.         $data $event->getData();
  24.         //data es un arreglo con los valores establecidos por el usuario en el form.
  25.         //como $data contiene el pais seleccionado por el usuario al enviar el formulario,
  26.         // usamos el valor de la posicion $data['country'] para filtrar el sql de los estados
  27.         if (isset($data['usuarioRecibe'])) {
  28.             $idUsuario $data['usuarioRecibe'];
  29.             $colaborador $this->entityManager->getRepository(\App\Entity\TerPersona::class)->find($idUsuario);
  30.             $cargo "n/a";
  31.             
  32.             if ($colaborador->getPerfilCargo()) {
  33.                 $cargo $colaborador->getPerfilCargo()->getCargo()->getNombre();
  34.             }
  35.             $data['cargoTmp'] = $cargo;
  36. //            $empresa = "N/A";
  37. //            $sede = "N/A";
  38. //            $tipoContrato = "N/A";
  39. //            if ($colaborador->getPerfilCargo()) {
  40. //                $cargo = $colaborador->getPerfilCargo()->getCargo()->getNombre();
  41. //            }
  42. //            $candidato = $this->entityManager->getRepository(\App\Entity\GHCandidato::class)->findOneBy(['numeroDocumento' => $colaborador->getNumeroDocumento(), 'estado' => [19, 15]]);
  43. //            if ($candidato) {
  44. //                $contratacion = $this->entityManager->getRepository(\App\Entity\GHContratacion::class)->findOneBy(['candidato' => $candidato->getId(), 'estado' => [15, 19]]);
  45. //                if ($contratacion) {
  46. //                    $salario = $contratacion->getSalario();
  47. //                    $empresa = $contratacion->getContrato()->getEmpresaFilial()->getNombre();
  48. //                    $tipoContrato = $candidato->getVacante()->getParTipoContrato()->getNombre();
  49. //                }
  50. //            }
  51.             $event->setData($data);
  52.         }
  53.     }
  54. }