src/Controller/RFSolicitudTipoSuministroController.php line 115

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\RFSolicitudTipoSuministro;
  4. use App\Repository\RFSolicitudTipoSuministroRepository;
  5. use App\Form\RFSolicitudTipoSuministroType;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. #[Route('/rf/solicitud/tipo/suministro')]
  12. class RFSolicitudTipoSuministroController extends AbstractController
  13. {
  14.     private $responseHandler;
  15.     private $documentHandler;
  16.     private $mailerCore;
  17.     private $em;
  18.     private $code 0;
  19.     private $msj "";
  20.     private $url "";
  21.     private $html "";
  22.     public function __construct(\App\Services\ResponseHandler $responseHandler\App\Services\DocumentHandler $documentHandler\App\Services\MailerCore $mailerCoreEntityManagerInterface $entityManager)
  23.     {
  24.         $this->responseHandler $responseHandler;
  25.         $this->mailerCore $mailerCore;
  26.         $this->documentHandler $documentHandler;
  27.         $this->em $entityManager;
  28.     }
  29.     #[Route('/{id}/listar'name'rf_solicitud_tipo_suministro'methods: ['GET'])]
  30.     public function index(\App\Entity\RFSolicitudSuministro $solicitudSuministro): Response
  31.     {
  32.         if (!$solicitudSuministro) {
  33.             throw $this->createNotFoundException('No se encontrĂ³ la vacante solicitada');
  34.         }
  35.         $entities $this->em->getRepository(RFSolicitudTipoSuministro::class)->getAll([$solicitudSuministro->getId()]);
  36.         return $this->render('rf_solicitud_tipo_suministro/index.html.twig', [
  37.             'controller_name' => 'RFSolicitudTipoSuministroController',
  38.             'entities' => $entities,
  39.             'entity' => $solicitudSuministro,
  40.         ]);
  41.     }
  42.     #[Route('/{id}/new'name'rf_solicitud_tipo_suministro_new'methods: ['GET''POST'])]
  43.     public function new(Request $requestEntityManagerInterface $entityManager\App\Entity\RFSolicitudSuministro $solicitudSuministro): Response
  44.     {
  45.         if ($solicitudSuministro->getEstado()->getId() != 33) {
  46.             $this->code 'info';
  47.             $this->msj "Imposible continuar, el registro ya se encuentra procesado .";
  48.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  49.         }
  50.         $rFSolicitudTipoSuministro = new RFSolicitudTipoSuministro();
  51.         $form $this->createForm(RFSolicitudTipoSuministroType::class, $rFSolicitudTipoSuministro, ['method' => 'POST''action' => $this->generateUrl($request->attributes->get('_route'), ['id' => $solicitudSuministro->getId()])]);
  52.         $form->remove('cantidad')
  53.             ->remove('tipoSuministro');
  54.         $form->add('cantidadSuministro1'\Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Cajas''required' => false])
  55.             ->add('cantidadSuministro2'\Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Ganchos''required' => false,])
  56.             ->add('cantidadSuministro3'\Symfony\Component\Form\Extension\Core\Type\IntegerType::class, ['label' => 'Cantidad de Carpetas''required' => false,]);
  57.         $colaborador $this->getUser()->getPersona();
  58.         $cargo "N/A";
  59.         $proceso "N/A";
  60.         $sede $this->getUser()->getPersona()->getSede() != NULL $this->getUser()->getPersona()->getSede()->getNombre() : "N/A";
  61.         if ($colaborador->getPerfilCargo()) {
  62.             $cargo $colaborador->getPerfilCargo()->getCargo()->getNombre();
  63.             $proceso $colaborador->getPerfilCargo()->getParProceso()->getNombre();
  64.         }
  65.         $form->handleRequest($request);
  66.         if ($form->isSubmitted() && $form->isValid()) {
  67.             foreach ($solicitudSuministro->getSolicitudTipoSuministro() as $sts) {
  68.                 if ($sts->getTipoSuministro()->getId() == $rFSolicitudTipoSuministro->getTipoSuministro()->getId()) {
  69.                     $this->code 'info';
  70.                     $this->msj "Imposible continuar, la solicitud ya cuenta con este suministro .";
  71.                     return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  72.                 }
  73.             }
  74.             $rFSolicitudTipoSuministro->setSolicitudSuministro($solicitudSuministro);
  75.             $rFSolicitudTipoSuministro->setCreateAt(new \DateTime('now'));
  76.             $rFSolicitudTipoSuministro->setCreateUser($this->getUser()->getUsername());
  77.             $rFSolicitudTipoSuministro->setUpdateAt(new \DateTime('now'));
  78.             $rFSolicitudTipoSuministro->setUpdateUser($this->getUser()->getUsername());
  79.             $entityManager->persist($rFSolicitudTipoSuministro);
  80.             $entityManager->flush();
  81.             $this->code 'success';
  82.             $this->msj "Registro cargado exitosamente";
  83.             $this->url $this->generateUrl('rf_solicitud_tipo_suministro', ['id' => $solicitudSuministro->getId()], 0);
  84.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  85.         }
  86.         return $this->renderForm('rf_solicitud_tipo_suministro/new.html.twig', [
  87.             'solicitudTipoSuministro' => $rFSolicitudTipoSuministro,
  88.             'solicitud' => $solicitudSuministro,
  89.             'form' => $form,
  90.             'cargo' => $cargo,
  91.             'proceso' => $proceso,
  92.             'sede' => $sede,
  93.         ]);
  94.     }
  95.     #[Route('/{id}/edit'name'rf_solicitud_tipo_suministro_edit'methods: ['GET''POST'])]
  96.     public function edit(Request $requestRFSolicitudTipoSuministro $rFSolicitudTipoSuministroEntityManagerInterface $entityManager): Response
  97.     {
  98.         $solicitudSuministro $rFSolicitudTipoSuministro->getSolicitudSuministro();
  99.         if ($solicitudSuministro->getEstado()->getId() != 33) {
  100.             $this->code 'info';
  101.             $this->msj "Imposible continuar, el registro ya se encuentra procesado .";
  102.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  103.         }
  104.         $form $this->createForm(RFSolicitudTipoSuministroType::class, $rFSolicitudTipoSuministro, ['method' => 'POST''action' => $this->generateUrl($request->attributes->get('_route'), ['id' => $rFSolicitudTipoSuministro->getId()])]);
  105.         $form->remove('tipoSuministro');
  106.         $colaborador $this->getUser()->getPersona();
  107.         $cargo "N/A";
  108.         $proceso "N/A";
  109.         $sede $this->getUser()->getPersona()->getSede() != NULL $this->getUser()->getPersona()->getSede()->getNombre() : "N/A";
  110.         if ($colaborador->getPerfilCargo()) {
  111.             $cargo $colaborador->getPerfilCargo()->getCargo()->getNombre();
  112.             $proceso $colaborador->getPerfilCargo()->getParProceso()->getNombre();
  113.         }
  114.         $form->handleRequest($request);
  115.         if ($form->isSubmitted() && $form->isValid()) {
  116.             foreach ($solicitudSuministro->getSolicitudTipoSuministro() as $sts) {
  117.                 if ($sts->getTipoSuministro()->getId() == $rFSolicitudTipoSuministro->getTipoSuministro()->getId() && $sts->getId() != $rFSolicitudTipoSuministro->getId()) {
  118.                     $this->code 'info';
  119.                     $this->msj "Imposible continuar, la solicitud ya cuenta con este suministro .";
  120.                     return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  121.                 }
  122.             }
  123.             $rFSolicitudTipoSuministro->setUpdateAt(new \DateTime('now'));
  124.             $rFSolicitudTipoSuministro->setUpdateUser($this->getUser()->getUsername());
  125.             $entityManager->persist($rFSolicitudTipoSuministro);
  126.             if ($rFSolicitudTipoSuministro->getCantidad() <= 0) {
  127.                 $entityManager->remove($rFSolicitudTipoSuministro);
  128.             }
  129.             $entityManager->flush();
  130.             $this->code 'success';
  131.             $this->msj "Registro cargado exitosamente";
  132.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  133.         }
  134.         return $this->renderForm('rf_solicitud_tipo_suministro/edit.html.twig', [
  135.             'solicitudTipoSuministro' => $rFSolicitudTipoSuministro,
  136.             'solicitud' => $solicitudSuministro,
  137.             'form' => $form,
  138.             'cargo' => $cargo,
  139.             'proceso' => $proceso,
  140.             'sede' => $sede,
  141.         ]);
  142.     }
  143.     #[Route('/{id}/eliminar'name'rf_solicitud_tipo_suministro_delete'methods: ['GET''POST'])]
  144.     public function delete(RFSolicitudTipoSuministro $rFSolicitudTipoSuministroEntityManagerInterface $entityManager): Response
  145.     {
  146.         if (!$rFSolicitudTipoSuministro) {
  147.             $this->code 'info';
  148.             $this->msj "Imposible eliminar, el registro no existe";
  149.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url]));
  150.         } else {
  151.             $entityManager->remove($rFSolicitudTipoSuministro);
  152.             $entityManager->flush();
  153.             $this->code 'success';
  154.             $this->msj "Registro eliminado exitosamente";
  155.             return new Response(json_encode(['code' => $this->code'msj' => $this->msj'url' => $this->url'html' => $this->html]));
  156.         }
  157.     }
  158. }