src/Controller/ProgManttoCorrectivoController.php line 109

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Equipo;
  4. use App\Entity\Evaluacion;
  5. use App\Entity\Impresora;
  6. use App\Entity\Otro;
  7. use App\Entity\Periodo;
  8. use App\Entity\Red;
  9. use App\Entity\Solicitud;
  10. use App\Entity\Usuario;
  11. use App\Form\EvaluacionType;
  12. use App\Form\SolicitudType;
  13. use App\Service\VistaTipoEquipo;
  14. use DateTime;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  17. use Symfony\Component\HttpFoundation\JsonResponse;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  22. #[Route('/programacion/correctivo')]
  23. class ProgManttoCorrectivoController extends AbstractController
  24. {
  25.     public EntityManagerInterface $entityManager;
  26.     /**
  27.      * @param EntityManagerInterface $entityManager
  28.      */
  29.     public function __construct(EntityManagerInterface $entityManager)
  30.     {
  31.         $this->entityManager $entityManager;
  32.     }
  33.     #[Route('/'name'prog_correctivo_index')]
  34.     public function index(): Response
  35.     {
  36.         /** @var Usuario $user */
  37.         $user $this->getUser();
  38.         $equipos $this->entityManager->getRepository(Equipo::class)->findBy([
  39.             'usuario' => $user->getIdUsu()
  40.         ]);
  41.         $impresoras $this->entityManager->getRepository(Impresora::class)->findBy([
  42.             'usuario' => $user->getIdUsu()
  43.         ]);
  44.         $redes $this->entityManager->getRepository(Red::class)->findBy([
  45.             'usuario' => $user->getIdUsu()
  46.         ]);
  47.         $otros $this->entityManager->getRepository(Otro::class)->findBy([
  48.             'usuario' => $user->getIdUsu()
  49.         ]);
  50.         $solicitudes $this->entityManager->getRepository(Solicitud::class)->registroTipoEquipoUsuario($user->getIdUsu(), 1);
  51.         return $this->render('prog_correctivo/index.html.twig', [
  52.             'equipos' => $equipos,
  53.             'impresoras' => $impresoras,
  54.             'redes' => $redes,
  55.             'otros' => $otros,
  56.             'solicitudes' => $solicitudes
  57.         ]);
  58.     }
  59.     /**
  60.      * Vista detallada de solicitud
  61.      * @Route("/vista/solicitud/{id}", name="prog_correctivo_vista_solicitud", methods={"GET", "POST"})
  62.      * @param Request $request
  63.      * @return Response
  64.      */
  65.     public function vistaSolicitud(Request $request) :Response
  66.     {
  67.         $solicitud $this->entityManager->getRepository(Solicitud::class)->detalleTipoEquipoSolicitud($request->get('id'));
  68.         return $this->render('prog_solicitud/informacion_solicitud.html.twig', ['info' => $solicitud]);
  69.     }
  70.     #[Route('/vista/contador'name'prog_correctivo_vista')]
  71.     public function vistaContador() :JsonResponse
  72.     {
  73.         /** @var Usuario $user */
  74.         $user $this->getUser();
  75.         $cTodoEquipo $this->entityManager->getRepository(Solicitud::class)->conteoEstatusTipoEquipoUsuario($user->getIdUsu(), 1);
  76.         return new JsonResponse(['data' => $cTodoEquipo], Response::HTTP_OK);
  77.     }
  78.     /**
  79.      * Vista detallada por tipo, equipo, impresora, red, otro
  80.      * @Route("/vista/{tipo}/{id}", name="prog_correctivo_vista_tipo", methods={"GET", "POST"})
  81.      * @param Request $request
  82.      * @return Response
  83.      */
  84.     public function vistaTipo(Request $request) :Response
  85.     {
  86.         $service = new VistaTipoEquipo($this->entityManager);
  87.         $info $service->consultaInformacion($request->get('tipo'), $request->get('id'));
  88.         return $this->render('prog_solicitud/informacion_tipo.html.twig', ['tipo' => $request->get('tipo'),'info' => $info]);
  89.     }
  90.     /**
  91.      * Programar solicitud por equipo, solo tipo equipo
  92.      * @Route("/solicitud/equipo/{id}", name="prog_correctivo_solicitud_tipoa", methods={"GET", "POST"})
  93.      * @param Equipo $equipo
  94.      * @param Request $request
  95.      * @return Response
  96.      */
  97.     public function programarSolicitudTipoA(Request $requestEquipo $equipo) :Response
  98.     {
  99.         $periodo $this->entityManager->getRepository(Periodo::class)->findOneBy(['activo' => 1'actual' => 1]);
  100.         
  101.         $info = [
  102.             'tipoEquipo' => 'Equipo',
  103.             'tipoMantenimiento' => 'Correctivo',
  104.             'marbete' => $equipo->getMarbete()
  105.         ];
  106.         $form $this->createForm(SolicitudType::class);
  107.         $form->remove('tipoEquipo');
  108.         $form->remove('idEquipo');
  109.         $form->remove('periodo');
  110.         $form->remove('tipoMantenimiento');
  111.         $form->remove('srealizado');
  112.         $form->remove('fregistro');
  113.         $form->remove('fatencion');
  114.         $form->remove('ffin');
  115.         $form->remove('evaluacion');
  116.         $form->remove('refacciones');
  117.         $form->remove('estatus');
  118.         $form->remove('usuario');
  119.         $form->remove('ubicacion');
  120.         $form->remove('gestor');
  121.         $form->handleRequest($request);
  122.         if ($form->isSubmitted() && $form->isValid()) {
  123.             if($form->get('falla')->getData() == "" || $form->get('falla') == null){
  124.                 return new JsonResponse(['mensaje' => 'El campo no debe estar vacío'], Response::HTTP_BAD_REQUEST);
  125.             }
  126.             $data = [
  127.                 "tipo" => $info['tipoEquipo'],
  128.                 "id" => $equipo->getIdEqu(),
  129.                 "marbete" => $equipo->getMarbete(),
  130.                 "marca" => $equipo->getMarca(),
  131.                 "modelo" => $equipo->getModelo(),
  132.                 "iduni" => $equipo->getUnidad()->getIdUni(),
  133.                 "consuni" => $equipo->getUnidad()->getConsecutivo(),
  134.                 "unidad" => $equipo->getUnidad(),
  135.                 "usuario" => $equipo->getUsuario(),
  136.                 "ubicacion" => $equipo->getUbicacion(),
  137.                 "accion" => $form->get('falla')->getData(),
  138.                 "periodo" => $periodo->getIdPrd()
  139.             ];
  140.             $info $this->solicitudProgramacion($data);
  141.             return new JsonResponse($info);
  142.         }
  143.         if ($form->isSubmitted() && !$form->isValid()) {
  144.             $view $this->renderView('prog_solicitud/programar.html.twig', [
  145.                 'form' => $form->createView(),
  146.                 'info' => $info
  147.             ]);
  148.             $response = new JsonResponse(['form' => $view]);
  149.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  150.             return $response;
  151.         }
  152.         return $this->renderForm('prog_solicitud/programar.html.twig', [
  153.             'form' => $form,
  154.             'info' => $info
  155.         ]);
  156.     }
  157.     /**
  158.      * Programar solicitud por equipo, solo tipo impresora
  159.      * @Route("/solicitud/impresora/{id}", name="prog_correctivo_solicitud_tipob", methods={"GET", "POST"})
  160.      * @param Impresora $impresora
  161.      * @param Request $request
  162.      * @return Response
  163.      */
  164.     public function programarSolicitudTipoB(Request $requestImpresora $impresora) :Response
  165.     {
  166.         $periodo $this->entityManager->getRepository(Periodo::class)->findOneBy(['activo' => 1'actual' => 1]);
  167.         $info = [
  168.             'tipoEquipo' => 'Impresora',
  169.             'tipoMantenimiento' => 'Correctivo',
  170.             'marbete' => $impresora->getMarbete()
  171.         ];
  172.         $form $this->createForm(SolicitudType::class);
  173.         $form->remove('tipoEquipo');
  174.         $form->remove('idEquipo');
  175.         $form->remove('periodo');
  176.         $form->remove('tipoMantenimiento');
  177.         $form->remove('srealizado');
  178.         $form->remove('fregistro');
  179.         $form->remove('fatencion');
  180.         $form->remove('ffin');
  181.         $form->remove('evaluacion');
  182.         $form->remove('refacciones');
  183.         $form->remove('estatus');
  184.         $form->remove('usuario');
  185.         $form->remove('ubicacion');
  186.         $form->remove('gestor');
  187.         $form->handleRequest($request);
  188.         if ($form->isSubmitted() && $form->isValid()) {
  189.             if($form->get('falla')->getData() == "" || $form->get('falla') == null){
  190.                 return new JsonResponse(['mensaje' => 'El campo no debe estar vacío'], Response::HTTP_BAD_REQUEST);
  191.             }
  192.             $data = [
  193.                 "tipo" => $info['tipoEquipo'],
  194.                 "id" => $impresora->getIdImp(),
  195.                 "marbete" => $impresora->getMarbete(),
  196.                 "marca" => $impresora->getMarca(),
  197.                 "modelo" => $impresora->getModelo(),
  198.                 "iduni" => $impresora->getUnidad()->getIdUni(),
  199.                 "consuni" => $impresora->getUnidad()->getConsecutivo(),
  200.                 "unidad" => $impresora->getUnidad(),
  201.                 "usuario" => $impresora->getUsuario(),
  202.                 "ubicacion" => $impresora->getUbicacion(),
  203.                 "accion" => $form->get('falla')->getData(),
  204.                 "periodo" => $periodo->getIdPrd()
  205.             ];
  206.             $info $this->solicitudProgramacion($data);
  207.             return new JsonResponse($info);
  208.         }
  209.         if ($form->isSubmitted() && !$form->isValid()) {
  210.             $view $this->renderView('prog_solicitud/programar.html.twig', [
  211.                 'form' => $form->createView(),
  212.                 'info' => $info
  213.             ]);
  214.             $response = new JsonResponse(['form' => $view]);
  215.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  216.             return $response;
  217.         }
  218.         return $this->renderForm('prog_solicitud/programar.html.twig', [
  219.             'form' => $form,
  220.             'info' => $info
  221.         ]);
  222.     }
  223.     /**
  224.      * Programar solicitud por equipo, solo tipo red
  225.      * @Route("/solicitud/red/{id}", name="prog_correctivo_solicitud_tipoc", methods={"GET", "POST"})
  226.      * @param Red $red
  227.      * @param Request $request
  228.      * @return Response
  229.      */
  230.     public function programarSolicitudTipoC(Request $requestRed $red) :Response
  231.     {
  232.         $periodo $this->entityManager->getRepository(Periodo::class)->findOneBy(['activo' => 1'actual' => 1]);
  233.         $info = [
  234.             'tipoEquipo' => 'Red',
  235.             'tipoMantenimiento' => 'Correctivo',
  236.             'marbete' => $red->getMarbete()
  237.         ];
  238.         $form $this->createForm(SolicitudType::class);
  239.         $form->remove('tipoEquipo');
  240.         $form->remove('idEquipo');
  241.         $form->remove('periodo');
  242.         $form->remove('tipoMantenimiento');
  243.         $form->remove('srealizado');
  244.         $form->remove('fregistro');
  245.         $form->remove('fatencion');
  246.         $form->remove('ffin');
  247.         $form->remove('evaluacion');
  248.         $form->remove('refacciones');
  249.         $form->remove('estatus');
  250.         $form->remove('usuario');
  251.         $form->remove('ubicacion');
  252.         $form->remove('gestor');
  253.         $form->handleRequest($request);
  254.         if ($form->isSubmitted() && $form->isValid()) {
  255.             if($form->get('falla')->getData() == "" || $form->get('falla') == null){
  256.                 return new JsonResponse(['mensaje' => 'El campo no debe estar vacío'], Response::HTTP_BAD_REQUEST);
  257.             }
  258.             $data = [
  259.                 "tipo" => $info['tipoEquipo'],
  260.                 "id" => $red->getIdRed(),
  261.                 "marbete" => $red->getMarbete(),
  262.                 "marca" => $red->getMarca(),
  263.                 "modelo" => $red->getModelo(),
  264.                 "iduni" => $red->getUnidad()->getIdUni(),
  265.                 "consuni" => $red->getUnidad()->getConsecutivo(),
  266.                 "unidad" => $red->getUnidad(),
  267.                 "usuario" => $red->getUsuario(),
  268.                 "ubicacion" => $red->getUbicacion(),
  269.                 "accion" => $form->get('falla')->getData(),
  270.                 "periodo" => $periodo->getIdPrd()
  271.             ];
  272.             $info $this->solicitudProgramacion($data);
  273.             return new JsonResponse($info);
  274.         }
  275.         if ($form->isSubmitted() && !$form->isValid()) {
  276.             $view $this->renderView('prog_solicitud/programar.html.twig', [
  277.                 'form' => $form->createView(),
  278.                 'info' => $info
  279.             ]);
  280.             $response = new JsonResponse(['form' => $view]);
  281.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  282.             return $response;
  283.         }
  284.         return $this->renderForm('prog_solicitud/programar.html.twig', [
  285.             'form' => $form,
  286.             'info' => $info
  287.         ]);
  288.     }
  289.     /**
  290.      * Programar solicitud por equipo, solo tipo otro
  291.      * @Route("/solicitud/otro/{id}", name="prog_correctivo_solicitud_tipod", methods={"GET", "POST"})
  292.      * @param Otro $otro
  293.      * @param Request $request
  294.      * @return Response
  295.      */
  296.     public function programarSolicitudTipoD(Request $requestOtro $otro) :Response
  297.     {
  298.         $periodo $this->entityManager->getRepository(Periodo::class)->findOneBy(['activo' => 1'actual' => 1]);
  299.         $info = [
  300.             'tipoEquipo' => 'Otro',
  301.             'tipoMantenimiento' => 'Correctivo',
  302.             'marbete' => $otro->getMarbete()
  303.         ];
  304.         $form $this->createForm(SolicitudType::class);
  305.         $form->remove('tipoEquipo');
  306.         $form->remove('idEquipo');
  307.         $form->remove('periodo');
  308.         $form->remove('tipoMantenimiento');
  309.         $form->remove('srealizado');
  310.         $form->remove('fregistro');
  311.         $form->remove('fatencion');
  312.         $form->remove('ffin');
  313.         $form->remove('evaluacion');
  314.         $form->remove('refacciones');
  315.         $form->remove('estatus');
  316.         $form->remove('usuario');
  317.         $form->remove('ubicacion');
  318.         $form->remove('gestor');
  319.         $form->handleRequest($request);
  320.         if ($form->isSubmitted() && $form->isValid()) {
  321.             if($form->get('falla')->getData() == "" || $form->get('falla') == null){
  322.                 return new JsonResponse(['mensaje' => 'El campo no debe estar vacío'], Response::HTTP_BAD_REQUEST);
  323.             }
  324.             $data = [
  325.                 "tipo" => $info['tipoEquipo'],
  326.                 "id" => $otro->getIdOtro(),
  327.                 "marbete" => $otro->getMarbete(),
  328.                 "marca" => $otro->getMarca(),
  329.                 "modelo" => $otro->getModelo(),
  330.                 "iduni" => $otro->getUnidad()->getIdUni(),
  331.                 "consuni" => $otro->getUnidad()->getConsecutivo(),
  332.                 "unidad" => $otro->getUnidad(),
  333.                 "usuario" => $otro->getUsuario(),
  334.                 "ubicacion" => $otro->getUbicacion(),
  335.                 "accion" => $form->get('falla')->getData(),
  336.                 "periodo" => $periodo->getIdPrd()
  337.             ];
  338.             $info $this->solicitudProgramacion($data);
  339.             return new JsonResponse($info);
  340.         }
  341.         if ($form->isSubmitted() && !$form->isValid()) {
  342.             $view $this->renderView('prog_solicitud/programar.html.twig', [
  343.                 'form' => $form->createView(),
  344.                 'info' => $info
  345.             ]);
  346.             $response = new JsonResponse(['form' => $view]);
  347.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  348.             return $response;
  349.         }
  350.         return $this->renderForm('prog_solicitud/programar.html.twig', [
  351.             'form' => $form,
  352.             'info' => $info
  353.         ]);
  354.     }
  355.     /**
  356.      * Función para crear objeto tipo equipo especificado e insertar en la base de datos
  357.      * @param array $data Array con la información específica a complementar
  358.      * @return array Para creación de botón en la vista
  359.      */
  360.     private function solicitudProgramacion($data)
  361.     {
  362.         date_default_timezone_set("America/Mexico_City");
  363.         $factual = new DateTime();
  364.         # Identificador de solicitud
  365.         $partA date("y");
  366.         $partB substr($data['iduni'], 33);
  367.         $partC str_pad($data['consuni'], 4,"0"STR_PAD_LEFT);
  368.         $idSolicitud $partA.$partB.$partC;
  369.         $save = new Solicitud();
  370.         $save->setIdSol($idSolicitud);
  371.         $save->setIdEquipo($data['id']);
  372.         $save->setTipoEquipo($data['tipo']);
  373.         $save->setTipoMantenimiento("MC");
  374.         $save->setUnidad($data['unidad']);
  375.         $save->setUsuario($data['usuario']);
  376.         $save->setUbicacion($data['ubicacion']);
  377.         $save->setPeriodo($data['periodo']);
  378.         $save->setFalla($data['accion']);
  379.         $save->setFregistro($factual);
  380.         $save->setFatencion($factual);
  381.         $save->setEstatus(1);
  382.         $this->entityManager->persist($save);
  383.         $this->entityManager->flush();
  384.         $unidad $data['unidad'];
  385.         $unidad->setConsecutivo($unidad->getConsecutivo() + 1);
  386.         $this->entityManager->persist($unidad);
  387.         $this->entityManager->flush();
  388.         $info = [
  389.             'mensaje' => 'Se ha generado la solicitud de mantenimiento, con el identificador ' $save->getIdSol(),
  390.             'ver_solicitud' => $this->generateUrl('prog_correctivo_vista_solicitud', ['id' => $save->getIdSol()], UrlGeneratorInterface::ABSOLUTE_URL),
  391.             'solicitud' => $save->getIdSol(),
  392.             'tipo_equipo' => $save->getTipoEquipo(),
  393.             'equipo' => $save->getIdEquipo(),
  394.             'marbete' => $data['marbete'],
  395.             'marca' => $data['marca'],
  396.             'modelo' => $data['modelo'],
  397.             'falla' => $save->getFalla(),
  398.             'tipo_mantenimiento' => $save->getTipoMantenimiento(),
  399.             'fregistro' => $save->getFregistro()->format("d M Y, H:m"),
  400.             'estatus' => $save->getEstatus()
  401.         ];
  402.         return $info;
  403.     }
  404.     /**
  405.      * Consulta de solicitudes programadas por equipo, de tipo equipo
  406.      * @Route("/programada/consulta/equipo/{id}", name="prog_correctivo_programada_tipoa", methods={"GET", "POST"})
  407.      * @param Equipo $equipo
  408.      * @return Response
  409.      */
  410.     public function consultaProgramadaTipoA(Equipo $equipo) :Response
  411.     {
  412.         $info = [
  413.             'tipoEquipo' => 'Equipo',
  414.             'tipoMantenimiento' => 'Correctivo',
  415.             'siglasMantenimiento' => 'MC'
  416.         ];
  417.         $programadas $this->entityManager->getRepository(Solicitud::class)->registroEquipoSolicitud($equipo->getIdEqu(), $info['tipoEquipo'], $info['siglasMantenimiento']);
  418.         return $this->renderForm('prog_solicitud/programado.html.twig', [
  419.             'info' => $info,
  420.             'solicitud' => $programadas
  421.         ]);
  422.     }
  423.     /**
  424.      * Consulta de solicitudes programadas por equipo, de tipo impresora
  425.      * @Route("/programada/consulta/impresora/{id}", name="prog_correctivo_programada_tipob", methods={"GET", "POST"})
  426.      * @param impresora $impresora
  427.      * @return Response
  428.      */
  429.     public function consultaProgramadaTipoB(Impresora $impresora) :Response
  430.     {
  431.         $info = [
  432.             'tipoEquipo' => 'Impresora',
  433.             'tipoMantenimiento' => 'Correctivo',
  434.             'siglasMantenimiento' => 'MC'
  435.         ];
  436.         $programadas $this->entityManager->getRepository(Solicitud::class)->registroEquipoSolicitud($impresora->getIdImp(), $info['tipoEquipo'], $info['siglasMantenimiento']);
  437.         return $this->renderForm('prog_solicitud/programado.html.twig', [
  438.             'info' => $info,
  439.             'solicitud' => $programadas
  440.         ]);
  441.     }
  442.     /**
  443.      * Consulta de solicitudes programadas por equipo, de tipo red
  444.      * @Route("/programada/consulta/red/{id}", name="prog_correctivo_programada_tipoc", methods={"GET", "POST"})
  445.      * @param Red $red
  446.      * @return Response
  447.      */
  448.     public function consultaProgramadaTipoC(Red $red) :Response
  449.     {
  450.         $info = [
  451.             'tipoEquipo' => 'Red',
  452.             'tipoMantenimiento' => 'Correctivo',
  453.             'siglasMantenimiento' => 'MC'
  454.         ];
  455.         $programadas $this->entityManager->getRepository(Solicitud::class)->registroEquipoSolicitud($red->getIdRed(), $info['tipoEquipo'], $info['siglasMantenimiento']);
  456.         return $this->renderForm('prog_solicitud/programado.html.twig', [
  457.             'info' => $info,
  458.             'solicitud' => $programadas
  459.         ]);
  460.     }
  461.     /**
  462.      * Consulta de solicitudes programadas por equipo, de tipo otro
  463.      * @Route("/programada/consulta/otro/{id}", name="prog_correctivo_programada_tipod", methods={"GET", "POST"})
  464.      * @param Otro $otro
  465.      * @return Response
  466.      */
  467.     public function consultaProgramadaTipoD(Otro $otro) :Response
  468.     {
  469.         $info = [
  470.             'tipoEquipo' => 'Otro',
  471.             'tipoMantenimiento' => 'Correctivo',
  472.             'siglasMantenimiento' => 'MC'
  473.         ];
  474.         $programadas $this->entityManager->getRepository(Solicitud::class)->registroEquipoSolicitud($otro->getIdOtro(), $info['tipoEquipo'], $info['siglasMantenimiento']);
  475.         return $this->renderForm('prog_solicitud/programado.html.twig', [
  476.             'info' => $info,
  477.             'solicitud' => $programadas
  478.         ]);
  479.     }
  480.     /**
  481.      * Evaluación de mantenimiento por solicitud
  482.      * @Route("/evaluacion/{idSol}", name="prog_correctivo_evaluacion", methods={"GET", "POST"})
  483.      * @param Solicitud $solicitud
  484.      * @param Request $request
  485.      * @return Response
  486.      */
  487.     public function evaluacionMantenimiento(Request $requestSolicitud $solicitud) :Response
  488.     {
  489.         /** @var Usuario $user */
  490.         $user $this->getUser();
  491.         $contestada $this->entityManager->getRepository(Evaluacion::class)->findOneBy(['solicitud' => $solicitud->getIdSol()]);
  492.         $nueva 0;
  493.         $info = [
  494.             'solicitud' => $solicitud->getIdSol(),
  495.             'tipoMantenimiento' => $solicitud->getTipoMantenimiento(),
  496.         ];
  497.         if (empty($contestada) && $solicitud->getEstatus() == 3) {
  498.             $nueva 1;
  499.             $form $this->createForm(EvaluacionType::class);
  500.             $form->handleRequest($request);
  501.             if ($form->isSubmitted() && $form->isValid()) {
  502.                 $evaluacion = new Evaluacion();
  503.                 $evaluacion->setEvalua1($form->get('evalua1')->getData());
  504.                 $evaluacion->setEvalua2($form->get('evalua2')->getData());
  505.                 $evaluacion->setEvalua3($form->get('evalua3')->getData());
  506.                 $evaluacion->setEvalua4($form->get('evalua4')->getData());
  507.                 $evaluacion->setEvalua5($form->get('evalua5')->getData());
  508.                 $evaluacion->setSolicitud($solicitud);
  509.                 $this->entityManager->persist($evaluacion);
  510.                 $this->entityManager->flush();
  511.                 date_default_timezone_set("America/Mexico_City");
  512.                 $time = new DateTime();
  513.                 $solicitud->setUsuario($user);
  514.                 $solicitud->setEstatus(4);
  515.                 $solicitud->setFevaluacion($time);
  516.                 $this->entityManager->persist($solicitud);
  517.                 $this->entityManager->flush();
  518.                 if ($solicitud->getEstatus() == 4){
  519.                     $estatus="<span class='badge bg-gradient-green d-block'>Evaluado</span>";
  520.                 }
  521.                 return new JsonResponse([
  522.                     'id' => $solicitud->getIdSol(),
  523.                     'estatus' => $estatus
  524.                 ]);
  525.             }
  526.         } else {
  527.             $form $this->createForm(EvaluacionType::class, $contestada);
  528.             $form->handleRequest($request);
  529.         }
  530.         if ($form->isSubmitted() && !$form->isValid()) {
  531.             $view $this->renderView('prog_correctivo/evaluacion.html.twig', [
  532.                 'form' => $form->createView(),
  533.                 'info' => $info,
  534.                 'nueva' => $nueva
  535.             ]);
  536.             $response = new JsonResponse(['form' => $view]);
  537.             $response->setStatusCode(Response::HTTP_BAD_REQUEST);
  538.             return $response;
  539.         }
  540.         return $this->renderForm('prog_correctivo/evaluacion.html.twig', [
  541.             'form' => $form,
  542.             'info' => $info,
  543.             'nueva' => $nueva
  544.         ]);
  545.     }
  546. }