src/Controller/EvaluacionController.php line 962

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Session\Session;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Routing\Generator\UrlGenerator;
  9. use App\Entity\Postulacion;
  10. use App\Entity\PcPuntoCultura;
  11. use App\Repository\PostulacionRepository;
  12. use App\Form\PostulacionType;
  13. use App\Entity\EvaluacionIndividual;
  14. use App\Service\EvaluacionService;
  15. use App\Repository\EvaluacionIndividualRepository;
  16. use App\Form\AdmisibilidadType;
  17. use App\Form\EvaluacionIndividualType;
  18. use App\Form\EvaluacionColectivaType;
  19. use App\Entity\User;
  20. use App\Repository\UserRepository;
  21. use App\Entity\ActividadComunitaria;
  22. use App\Repository\ActividadComunitariaRepository;
  23. use App\Entity\ActividadTipo;
  24. use App\Repository\ActividadTipoRepository;
  25. use App\Entity\ParticipacionComunitaria;
  26. use App\Repository\ParticipacionComunitariaRepository;
  27. use App\Service\PostulacionService;
  28. use App\Entity\OrganizacionVinculo;
  29. use App\Repository\OrganizacionVinculoRepository;
  30. use App\Entity\DescripcionActividadOrganizacion;
  31. use App\Repository\DescripcionActividadOrganizacionRepository;
  32. use App\Entity\DocumentoFundamentaDesarrollaActividad;
  33. use App\Repository\DocumentoFundamentaDesarrollaActividadRepository;
  34. use DateTime;
  35. use Symfony\Component\HttpFoundation\StreamedResponse;
  36. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  37. use App\Repository\ConvocatoriaRepository;
  38. use App\Repository\RegionRepository;
  39. use App\Service\AdminService;
  40. use App\Form\AdministracionPostulacionType;
  41. use App\Repository\ParametroRepository;
  42. use App\Repository\PcPuntoCulturaRepository;
  43. use App\Service\RacService;
  44. /**
  45.  * @Route("/admin/eval", name="eval_")
  46.  */
  47. class EvaluacionController extends AbstractController
  48. {
  49.     #[Route('/'name'default')]
  50.     public function default(
  51.         Request $request
  52.         ): Response
  53.     {
  54.         //echo "aca voy";
  55.         //die;
  56.     }
  57.     /* --- Admisibilidad --- */
  58.     #[Route('/admisor/home'name'admisor_home')]
  59.     public function admisorHome(
  60.         Request $request,
  61.         EvaluacionService $evaluacionService,
  62.         ConvocatoriaRepository $convocatoriaRepository,
  63.         RegionRepository $regionRepository
  64.         ): Response
  65.     {
  66.         $userActual $this->getUser();
  67.         if (!$userActual){
  68.             $this->addFlash('warning''Sesión Expirada!');
  69.             return $this->redirect($this->generateUrl('admin_login'));
  70.         }
  71.         if (!$userActual->isActivo()) {
  72.             $this->addFlash('warning''Usuario inactivo');
  73.             return $this->redirect($this->generateUrl('admin_login'));
  74.         }
  75.         if(
  76.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  77.             !$this->isGranted('ROLE_EVALUADOR_ADM')
  78.             ){
  79.             $this->addFlash('warning''Acceso denegado');
  80.             return $this->redirect($this->generateUrl('admin_home'));
  81.         }
  82.         $convocatorias $convocatoriaRepository->findAll();
  83.         $regiones = [];
  84.         if($userActual->isSuperAdmin()){
  85.             $regiones $regionRepository->findAll();
  86.         } else  {
  87.             $regiones $userActual->getRegiones();
  88.         }
  89.         $regionesLabel = [];
  90.         foreach($regiones as $regionOb){
  91.             $regionesLabel[] = $regionOb->getNombre();
  92.         }
  93.         //Paginacion
  94.         $page $request->query->getInt('page'1);
  95.         $limit 10;
  96.         $filters = [
  97.             'id' => $request->query->get('id'),
  98.             'organizacionName' => $request->query->get('organizacionName'),
  99.             'rut' => $request->query->get('rut'),
  100.             'racRegion' => $request->query->get('racRegion'),
  101.             'convocatoria' => $request->query->get('convocatoria'),
  102.             'evaluacion' => $request->query->get('evaluacion'),
  103.             'estado' => $request->query->get('estado'),
  104.         ];
  105.         $postulaciones $evaluacionService->getPostulacionesEnviadasByRegionPaginatedWithFiltersAdmisibilidad(
  106.             $regionesLabel,
  107.             $userActual->isSuperAdmin(),
  108.             $page,
  109.             $limit,
  110.             $filters,
  111.             $userActual->getId()
  112.         );
  113.         return $this->render('evaluacion/admisor-menu-home.html.twig', [
  114.             'postulaciones'=>$postulaciones,
  115.             'filters'=>$filters,
  116.             'regiones'=> $regiones,
  117.             'convocatorias' => $convocatorias,
  118.         ]);
  119.     }
  120.     #[Route('/admisor/admisibilidad/{id}'name'admisor_admisiblidad')]
  121.     public function admisibilidadRealizar(
  122.         Request $request,
  123.         Int $id,
  124.         EvaluacionService $evaluacionService,
  125.         PostulacionRepository $postulacionRepository,
  126.         AdminService $adminService
  127.         ): Response
  128.     {
  129.         $userActual $this->getUser();
  130.         if (!$userActual){
  131.             $this->addFlash('warning''Sesión Expirada!');
  132.             return $this->redirect($this->generateUrl('admin_login'));
  133.         }
  134.         if (!$userActual->isActivo()) {
  135.             $this->addFlash('warning''Usuario inactivo');
  136.             return $this->redirect($this->generateUrl('admin_login'));
  137.         }
  138.         if(
  139.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  140.             !$this->isGranted('ROLE_EVALUADOR_ADM')
  141.             ){
  142.             $this->addFlash('warning''Acceso denegado');
  143.             return $this->redirect($this->generateUrl('admin_home'));
  144.         }
  145.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles());
  146.         $postulacion $evaluacionService->getPostulacionForAdmisibilidadEvaluar($id);
  147.         $form $this->createForm(AdmisibilidadType::class, $postulacion);
  148.         if ($request->isMethod('POST')) {
  149.             //echo "guardando...<br>";
  150.             $form->handleRequest($request);
  151.             if ($form->isSubmitted() && $form->isValid()) {
  152.                 try {
  153.                     $dataForm $request->request->all();
  154.                     $finalizarAdmisibilidad=false;
  155.                     //Validacion
  156.                     $isDataValida=true;
  157.                     $msgDataValidacion="";
  158.                     if (!(isset($dataForm["admisibilidad"]["admisibilidad_isAdmisible"]))){
  159.                         $isDataValida=false;
  160.                         $msgDataValidacion="Admisiblidad no guardada. Debe indicar (Si o No) es admisible";
  161.                     }
  162.                     if ($isDataValida){
  163.                         //$postulacion->setAdmisibilidadObservacionesPub($dataForm["admisibilidad"]["admisibilidad_observacionesPub"]);
  164.                         $save_finalizar=false;
  165.                         /*if(isset($dataForm["admisibilidad"]["save"])){
  166.                             echo "save";
  167.                         }*/
  168.                         if(isset($dataForm["admisibilidad"]["save_finalizar"])){
  169.                             $save_finalizar=true;
  170.                         }
  171.                         $now = new DateTime();
  172.                         $postulacion->setAdmisibilidadAt($now);
  173.                         $userActual $this->getUser();
  174.                         $postulacion->setAdmisibilidadBy($userActual);
  175.                         if($save_finalizar){
  176.                             $postulacion->setAdmisibilidadIsFinalizada(true);
  177.                         }
  178.                         $postulacionRepository->add($postulacion);
  179.                         if($save_finalizar){
  180.                             $this->addFlash('success''Admisiblidad guardada y finalizada exitosamente');
  181.                             return $this->redirect($this->generateUrl('eval_admisor_home'));
  182.                         }else{
  183.                             $this->addFlash('success''Admisiblidad guardada exitosamente');
  184.                             //return $this->redirect($this->generateUrl('eval_admisor_home'));
  185.                         }
  186.                     }else{
  187.                         $this->addFlash('danger'$msgDataValidacion);
  188.                     }
  189.                 } catch (\Exception $e) {
  190.                     $this->addFlash('danger''Ocurrió un error inesperado' $e->getMessage());
  191.                     return $this->redirectToRoute('eval_admisor_admisiblidad', ['id' => $id]);
  192.                 }
  193.             }else{
  194.                 foreach ($form->getErrors() as $error) {
  195.                     $message[] = $error->getMessage();
  196.                     $this->addFlash('danger'$error->getMessage());
  197.                 }
  198.                 //throw new HttpException(Codes::HTTP_BAD_REQUEST, implode("\n", $message));
  199.             }
  200.         }
  201.         return $this->renderForm('evaluacion/admisor-menu-admisibilidad.html.twig', [
  202.             'postulacion'=>$postulacion,
  203.             'form' => $form,
  204.             'menuAdmin' => $menuAdmin,
  205.         ]);
  206.     }
  207.     /* --- Evaluacion Individual --- */
  208.     #[Route('/evaluador-ind/home'name'evaluador_ind_home')]
  209.     public function evaluadorIndHome(
  210.         Request $request,
  211.         EvaluacionService $evaluacionService,
  212.         ConvocatoriaRepository $convocatoriaRepository,
  213.         RegionRepository $regionRepository
  214.         ): Response
  215.     {
  216.         $userActual $this->getUser();
  217.         if (!$userActual){
  218.             $this->addFlash('warning''Sesión Expirada!');
  219.             return $this->redirect($this->generateUrl('admin_login'));
  220.         }
  221.         if (!$userActual->isActivo()) {
  222.             $this->addFlash('warning''Usuario inactivo');
  223.             return $this->redirect($this->generateUrl('admin_login'));
  224.         }
  225.         if(
  226.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  227.             !$this->isGranted('ROLE_EVALUADOR_IND')
  228.             ){
  229.             $this->addFlash('warning''Acceso denegado');
  230.             return $this->redirect($this->generateUrl('admin_home'));
  231.         }
  232.         $convocatorias $convocatoriaRepository->findAll();
  233.         $regiones = [];
  234.         if($userActual->isSuperAdmin()){
  235.             $regiones $regionRepository->findAll();
  236.         } else  {
  237.             $regiones $userActual->getRegiones();
  238.         }
  239.         $regionesLabel = [];
  240.         foreach($regiones as $regionOb){
  241.             $regionesLabel[] = $regionOb->getNombre();
  242.         }
  243.         //Paginacion
  244.         $page $request->query->getInt('page'1);
  245.         $limit 10;
  246.         $filters = [
  247.             'id' => $request->query->get('id'),
  248.             'organizacionName' => $request->query->get('organizacionName'),
  249.             'rut' => $request->query->get('rut'),
  250.             'racRegion' => $request->query->get('racRegion'),
  251.             'convocatoria' => $request->query->get('convocatoria'),
  252.             'evaluacion' => $request->query->get('evaluacion'),
  253.             'estado' => $request->query->get('estado'),
  254.         ];
  255.         $postulaciones $evaluacionService->getPostulacionesEnviadasByRegionPaginatedWithFiltersEvaluacionInd(
  256.             $regionesLabel,
  257.             $userActual->isSuperAdmin(),
  258.             $page,
  259.             $limit,
  260.             $filters,
  261.             $userActual->getId()
  262.         );
  263.         return $this->render('evaluacion/evaluador-ind-menu-home.html.twig', [
  264.             'postulaciones'=>$postulaciones,
  265.             'filters'=>$filters,
  266.             'regiones'=> $regiones,
  267.             'convocatorias' => $convocatorias,
  268.         ]);
  269.     }
  270.     // public function evaluadorIndHome(
  271.     //     Request $request,
  272.     //     EvaluacionService $evaluacionService,
  273.     //     UserRepository $userRepository
  274.     //     ): Response
  275.     // {
  276.     //     $userActual = $this->getUser();
  277.     //     $postulacionesEvaluacionesUsuario = $evaluacionService->getPostulacionAndEvaluacionUsuarioByRegionToEvaluar($userActual->getRegion()->getNombre(), $userActual->getId());
  278.     //     $postulacionesAll = $postulacionesEvaluacionesUsuario["postulaciones"];
  279.     //     $postulaciones=array();
  280.     //     foreach($postulacionesAll as $itemPostulacion){
  281.     //         if ($itemPostulacion->getConvocatoria()){
  282.     //             if ($itemPostulacion->getConvocatoria()->isEvaluacionActiva()){
  283.     //                 $postulaciones[]=$itemPostulacion;
  284.     //             }
  285.     //         }
  286.     //     }
  287.     //     $evaluacionesUsuario = $postulacionesEvaluacionesUsuario["evaluaciones"];
  288.     //     //AllEvaluaciones
  289.     //     $postulacionesAllEvaluacionesUsuario = $evaluacionService->getPostulacionAndEvaluacionByRegionToEvaluarColectivo($userActual->getRegion()->getNombre());
  290.     //     $postulacionesAllTemp = $postulacionesAllEvaluacionesUsuario["postulaciones"];
  291.     //     $postulacionesAllConvocatoria=array();
  292.     //     foreach($postulacionesAllTemp as $itemPostulacion){
  293.     //         if ($itemPostulacion->getConvocatoria()){
  294.     //             if ($itemPostulacion->getConvocatoria()->isAdmisibilidadActiva()){
  295.     //                 $postulacionesAllConvocatoria[]=$itemPostulacion;
  296.     //             }
  297.     //         }
  298.     //     }
  299.     //     $evaluacionesIndividuales = $postulacionesAllEvaluacionesUsuario["evaluacionesIndividuales"];
  300.     //     $evaluacionesIndividualesResumen = $postulacionesAllEvaluacionesUsuario["evaluacionesIndividualesResumen"];
  301.     //     $evaluadoresRegion=0;
  302.     //     $usersByRegion = $userRepository->findByRegion($userActual->getRegion()->getId());
  303.     //     foreach($usersByRegion as $user){
  304.     //         if (in_array("ROLE_EVALUADOR_IND", $user->getRoles())) {
  305.     //             $evaluadoresRegion++;
  306.     //         }
  307.     //     }
  308.     //     return $this->render('evaluacion/evaluador-ind-home.html.twig', [
  309.     //         'postulaciones'=>$postulaciones,
  310.     //         'evaluacionesUsuario'=>$evaluacionesUsuario,
  311.     //         'evaluacionesIndividuales'=>$evaluacionesIndividuales,
  312.     //         'evaluacionesIndividualesResumen'=>$evaluacionesIndividualesResumen,
  313.     //         'totalUserEvalInd'=>$evaluadoresRegion,
  314.     //     ]);
  315.     // }
  316.     #[Route('/evaluador-ind/calificar/{id}'name'evaluador_ind_calificar')]
  317.     public function evaluacionIndRealizar(
  318.         Request $request,
  319.         Int $id,
  320.         EvaluacionService $evaluacionService,
  321.         PostulacionRepository $postulacionRepository,
  322.         EvaluacionIndividualRepository $evaluacionIndividualRepository
  323.         ): Response
  324.     {
  325.         $userActual $this->getUser();
  326.         if (!$userActual){
  327.             $this->addFlash('warning''Sesión Expirada!');
  328.             return $this->redirect($this->generateUrl('admin_login'));
  329.         }
  330.         if (!$userActual->isActivo()) {
  331.             $this->addFlash('warning''Usuario inactivo');
  332.             return $this->redirect($this->generateUrl('admin_login'));
  333.         }
  334.         if(
  335.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  336.             !$this->isGranted('ROLE_EVALUADOR_IND')
  337.             ){
  338.             $this->addFlash('warning''Acceso denegado');
  339.             return $this->redirect($this->generateUrl('admin_home'));
  340.         }
  341.         $postulacion $evaluacionService->getPostulacionForEvaluar($id);
  342.         $evaluacionUsuario $evaluacionService->getEvaluacionByPostulacionIdAndUserId($id,$userActual->getId());
  343.         if (count($evaluacionUsuario)==0){
  344.             $evaluacionIndividual = new EvaluacionIndividual();
  345.             $now = new DateTime();
  346.             $evaluacionIndividual->setCreatedAt($now);
  347.             $evaluacionIndividual->setUpdatedAt($now);
  348.             $evaluacionIndividual->setPostulacion($postulacion);
  349.             $evaluacionIndividual->setUser($userActual);
  350.             $evaluacionIndividualRepository->save($evaluacionIndividual,true);
  351.         }elseif(count($evaluacionUsuario)==1){
  352.             $evaluacionIndividual $evaluacionUsuario[0];
  353.         }else{
  354.             $evaluacionIndividual $evaluacionUsuario[0];
  355.             $this->addFlash('danger''Se ha identificado una inconsistencia con las evaluacion (mas de 1 evaluacion por postulacion/usuario), por favor contacte al administrador antes de continuar');
  356.         }
  357.         $criteriosName $postulacion->getCriterios();
  358.         //Crear Form
  359.         $form $this->createForm(EvaluacionIndividualType::class, $evaluacionIndividual);
  360.         if ($request->isMethod('POST')) {
  361.             $form->handleRequest($request);
  362.             if ($form->isSubmitted() && $form->isValid()) {
  363.                 try {
  364.                     $dataForm $request->request->all();
  365.                     //Validacion
  366.                     $isDataValida=true;
  367.                     $msgDataValidacion="";
  368.                     if ($isDataValida){
  369.                         $now = new DateTime();
  370.                         $evaluacionIndividual->setUpdatedAt($now);
  371.                         //$evaluacionIndividual->calcularPuntajeFinal();
  372.                         $evaluacionIndividual->setHasSaved(true);
  373.                         $evaluacionIndividualRepository->save($evaluacionIndividual,true);
  374.                         $this->addFlash('success''Evaluacion guardada exitosamente');
  375.                         return $this->redirect($this->generateUrl('eval_evaluador_ind_home'));
  376.                     }else{
  377.                         $this->addFlash('danger'$msgDataValidacion);
  378.                     }
  379.                 } catch (\Exception $e) {
  380.                     $this->addFlash('danger''Ocurrió un error inesperado' $e->getMessage());
  381.                     return $this->redirectToRoute('eval_evaluador_ind_calificar', ['id' => $id]);
  382.                 }
  383.             }else{
  384.                 foreach ($form->getErrors() as $error) {
  385.                     $message[] = $error->getMessage();
  386.                     $this->addFlash('danger'$error->getMessage());
  387.                 }
  388.                 //throw new HttpException(Codes::HTTP_BAD_REQUEST, implode("\n", $message));
  389.             }
  390.         }
  391.         return $this->renderForm('evaluacion/evaluador-ind-menu-calificar.html.twig', [
  392.             'postulacion'=>$postulacion,
  393.             'form' => $form,
  394.             'criteriosName'=>$criteriosName
  395.         ]);
  396.     }
  397.     /* --- Evaluacion Colectiva --- */
  398.     #[Route('/evaluador-col/home'name'evaluador_col_home')]
  399.     public function evaluadorColHome(
  400.         Request $request,
  401.         EvaluacionService $evaluacionService,
  402.         ConvocatoriaRepository $convocatoriaRepository,
  403.         RegionRepository $regionRepository
  404.         ): Response
  405.     {
  406.         $userActual $this->getUser();
  407.         if (!$userActual){
  408.             $this->addFlash('warning''Sesión Expirada!');
  409.             return $this->redirect($this->generateUrl('admin_login'));
  410.         }
  411.         if (!$userActual->isActivo()) {
  412.             $this->addFlash('warning''Usuario inactivo');
  413.             return $this->redirect($this->generateUrl('admin_login'));
  414.         }
  415.         if(
  416.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  417.             !$this->isGranted('ROLE_EVALUADOR_COL')
  418.             ){
  419.             $this->addFlash('warning''Acceso denegado');
  420.             return $this->redirect($this->generateUrl('admin_home'));
  421.         }
  422.         $convocatorias $convocatoriaRepository->findAll();
  423.         $regiones = [];
  424.         if($userActual->isSuperAdmin()){
  425.             $regiones $regionRepository->findAll();
  426.         } else  {
  427.             $regiones $userActual->getRegiones();
  428.         }
  429.         $regionesLabel = [];
  430.         foreach($regiones as $regionOb){
  431.             $regionesLabel[] = $regionOb->getNombre();
  432.         }
  433.         //Paginacion
  434.         $page $request->query->getInt('page'1);
  435.         $limit 10;
  436.         $filters = [
  437.             'id' => $request->query->get('id'),
  438.             'organizacionName' => $request->query->get('organizacionName'),
  439.             'rut' => $request->query->get('rut'),
  440.             'racRegion' => $request->query->get('racRegion'),
  441.             'convocatoria' => $request->query->get('convocatoria'),
  442.             'evaluacion' => $request->query->get('evaluacion'),
  443.             'estado' => $request->query->get('estado'),
  444.         ];
  445.         $postulaciones $evaluacionService->getPostulacionesEnviadasByRegionPaginatedWithFiltersEvaluacionCol(
  446.             $regionesLabel,
  447.             $userActual->isSuperAdmin(),
  448.             $page,
  449.             $limit,
  450.             $filters,
  451.             $userActual->getId()
  452.         );
  453.         return $this->render('evaluacion/evaluador-col-menu-home.html.twig', [
  454.             'postulaciones'=>$postulaciones,
  455.             'filters'=>$filters,
  456.             'regiones'=> $regiones,
  457.             'convocatorias' => $convocatorias,
  458.         ]);
  459.     }
  460.     // public function evaluadorColHome(
  461.     //     Request $request,
  462.     //     EvaluacionService $evaluacionService,
  463.     //     UserRepository $userRepository
  464.     //     ): Response
  465.     // {
  466.     //     //$postulaciones = $evaluacionService->getPostulacionesAdmisiblesToEvaluar();
  467.     //     $userActual = $this->getUser();
  468.     //     $postulacionesEvaluacionesUsuario = $evaluacionService->getPostulacionAndEvaluacionByRegionToEvaluarColectivo($userActual->getRegion()->getNombre());
  469.     //     $postulacionesAll = $postulacionesEvaluacionesUsuario["postulaciones"];
  470.     //     $postulaciones=array();
  471.     //     foreach($postulacionesAll as $itemPostulacion){
  472.     //         if ($itemPostulacion->getConvocatoria()){
  473.     //             if ($itemPostulacion->getConvocatoria()->isAdmisibilidadActiva()){
  474.     //                 $postulaciones[]=$itemPostulacion;
  475.     //             }
  476.     //         }
  477.     //     }
  478.     //     $evaluacionesIndividuales = $postulacionesEvaluacionesUsuario["evaluacionesIndividuales"];
  479.     //     $evaluacionesIndividualesResumen = $postulacionesEvaluacionesUsuario["evaluacionesIndividualesResumen"];
  480.     //     //print_r($evaluacionesIndividualesResumen);
  481.     //     $evaluadoresRegion=0;
  482.     //     $usersByRegion = $userRepository->findByRegion($userActual->getRegion()->getId());
  483.     //     foreach($usersByRegion as $user){
  484.     //         if (in_array("ROLE_EVALUADOR_IND", $user->getRoles())) {
  485.     //             $evaluadoresRegion++;
  486.     //         }
  487.     //     }
  488.     //     return $this->render('evaluacion/evaluador-col-home.html.twig', [
  489.     //         'postulaciones'=>$postulaciones,
  490.     //         'evaluacionesIndividuales'=>$evaluacionesIndividuales,
  491.     //         'evaluacionesIndividualesResumen'=>$evaluacionesIndividualesResumen,
  492.     //         'totalUserEvalInd'=>$evaluadoresRegion,
  493.     //     ]);
  494.     // }
  495.     #[Route('/evaluador-col/calificar/{id}'name'evaluador_col_calificar')]
  496.     public function evaluacionColRealizar(
  497.         Request $request,
  498.         Int $id,
  499.         EvaluacionService $evaluacionService,
  500.         PostulacionRepository $postulacionRepository,
  501.         ParametroRepository $parametroRepository,
  502.         PcPuntoCulturaRepository $pcPuntoCulturaRepository,
  503.         RacService $racService
  504.         ): Response
  505.     {
  506.         $userActual $this->getUser();
  507.         if (!$userActual){
  508.             $this->addFlash('warning''Sesión Expirada!');
  509.             return $this->redirect($this->generateUrl('admin_login'));
  510.         }
  511.         if (!$userActual->isActivo()) {
  512.             $this->addFlash('warning''Usuario inactivo');
  513.             return $this->redirect($this->generateUrl('admin_login'));
  514.         }
  515.         if(
  516.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  517.             !$this->isGranted('ROLE_EVALUADOR_COL')
  518.             ){
  519.             $this->addFlash('warning''Acceso denegado');
  520.             return $this->redirect($this->generateUrl('admin_home'));
  521.         }
  522.         $postulacion $evaluacionService->getPostulacionForEvaluar($id);
  523.         $criteriosName $postulacion->getCriterios();
  524.         //Crear Form
  525.         $form $this->createForm(EvaluacionColectivaType::class, $postulacion);
  526.         $puntajeParaEvaluarAPuntoDeCultura $parametroRepository->findOneByNombre('PUNTAJE_EVALUACION');
  527.         $puntajeEvaluacion = (float) $puntajeParaEvaluarAPuntoDeCultura->getValor();
  528.         if ($request->isMethod('POST')) {
  529.             $form->handleRequest($request);
  530.             if ($form->isSubmitted() && $form->isValid()) {
  531.                 try {
  532.                 $dataForm $request->request->all();
  533.                 //Validacion
  534.                 $isDataValida=true;
  535.                 $msgDataValidacion="";
  536.                 $save_finalizar=false;
  537.                 if(isset($dataForm["evaluacion_colectiva"]["save_finalizar"])){
  538.                     $save_finalizar=true;
  539.                 }
  540.                 if ($save_finalizar){
  541.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_conformacion_c1"]))){
  542.                         $isDataValida=false;
  543.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_conformacion_c1"]["criterio"]."' en '".$criteriosName["nota_conformacion_c1"]["ambito"]."'";
  544.                     }
  545.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_conformacion_c2"]))){
  546.                         $isDataValida=false;
  547.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_conformacion_c2"]["criterio"]."' en '".$criteriosName["nota_conformacion_c2"]["ambito"]."'";
  548.                     }
  549.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_territorio_c1"]))){
  550.                         $isDataValida=false;
  551.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_territorio_c1"]["criterio"]."' en '".$criteriosName["nota_territorio_c1"]["ambito"]."'";
  552.                     }
  553.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_territorio_c2"]))){
  554.                         $isDataValida=false;
  555.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_territorio_c2"]["criterio"]."' en '".$criteriosName["nota_territorio_c2"]["ambito"]."'";
  556.                     }
  557.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_objetivos_c1"]))){
  558.                         $isDataValida=false;
  559.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_objetivos_c1"]["criterio"]."' en '".$criteriosName["nota_objetivos_c1"]["ambito"]."'";
  560.                     }
  561.                     if (!(isset($dataForm["evaluacion_colectiva"]["eval_nota_practicas_c1"]))){
  562.                         $isDataValida=false;
  563.                         $msgDataValidacion="Evaluación no guardada. Debe calificar el criterio '".$criteriosName["nota_practicas_c1"]["criterio"]."' en '".$criteriosName["nota_practicas_c1"]["ambito"]."'";
  564.                     }
  565.                 }
  566.                 if ($isDataValida){
  567.                     $now = new DateTime();
  568.                     $postulacion->setEvalNotaFinalAt($now);
  569.                     $userActual $this->getUser();
  570.                     $postulacion->setEvalNotaFinalBy($userActual);
  571.                     //$evaluacion->setNotaConformacionC1($dataForm["evaluacion"]["nota_conformacion_c1"]);
  572.                     $postulacion->calcularPuntajeFinal();
  573.                     if($save_finalizar){
  574.                         $postulacion->setEvalIsFinalizada(true);
  575.                         $punto $pcPuntoCulturaRepository->findByOrgIdAndRut($postulacion->getOrganizacionId(), $postulacion->getRut(), $postulacion->getDv());
  576.                         if($postulacion->getEvalPuntajeFinal() >= $puntajeEvaluacion){
  577.                             $run strval(number_format((int) $postulacion->getRut(), 0'''.')) . '-' $postulacion->getDv();
  578.                             $organizaciones $racService->getRegisterRac(strval($run));
  579.                             $organizacionRac null;
  580.                             if(!empty($organizaciones)){
  581.                                 foreach($organizaciones as $orga){
  582.                                     if(empty($orga['org_id'])) continue;
  583.                                     if($orga['org_id'] == $postulacion->getOrganizacionId()) $organizacionRac $orga;
  584.                                 }
  585.                             }
  586.                             if(empty($punto)) $punto = new PcPuntoCultura();
  587.                             $punto->setNombre($postulacion->getOrganizacionName());
  588.                             $punto->setNombreContacto($postulacion->getNombres() . ' ' $postulacion->getApellidos());
  589.                             $punto->setEmailContacto($postulacion->getEmail());
  590.                             $punto->setCorreoElectronico1($postulacion->getEmail());
  591.                             $punto->setActivo(true);
  592.                             if(!empty($organizacionRac)){
  593.                                 $punto->setRegion($organizacionRac['datos_org']['region']);
  594.                                 $punto->setComuna($organizacionRac['datos_org']['comuna']);
  595.                                 $punto->setNombreRepresentanteLegal($organizacionRac['datos_org']['representante_legal_nombres'] . ' ' $organizacionRac['datos_org']['representante_legal_apellidos']);
  596.                                 $punto->setRutRepresentanteLegal($organizacionRac['datos_org']['representante_legal_run']);
  597.                                 $punto->setNombrePersonaJuridica($organizacionRac['datos_org']['representante_legal_nombres'] . ' ' $organizacionRac['datos_org']['representante_legal_apellidos']);
  598.                                 $punto->setRutPersonaJuridica($organizacionRac['datos_org']['representante_legal_run']);
  599.                                 $punto->setTelefono1($organizacionRac['datos_org']['telefono_contacto'][0]);
  600.                                 $punto->setTelefono2($organizacionRac['datos_org']['movil_contacto'][0]);
  601.                             }
  602.                             // $punto->setCertificadoPunto($data['certificado_punto']);
  603.                             $docEstatutoOrganizacion = [
  604.                                 "path" => "/documentos/postulaciones/postulacion_" $postulacion->getId() . "/" $postulacion->getFormDocEstatFileName(),
  605.                                 "new_filename" => $postulacion->getFormDocEstatFileName(),
  606.                                 "original_name" => $postulacion->getFormDocEstatFileNameOriginal()
  607.                             ];
  608.                             $docCertificadoVigenciaPersonaJuridica = [
  609.                                 "path" => "/documentos/postulaciones/postulacion_" $postulacion->getId() . "/" $postulacion->getFormDocVigencFileName(),
  610.                                 "new_filename" => $postulacion->getFormDocVigencFileName(),
  611.                                 "original_name" => $postulacion->getFormDocVigencFileNameOriginal()
  612.                             ];
  613.                             $docAcreditaPersoneriaVigente = [
  614.                                 "path" => "/documentos/postulaciones/postulacion_" $postulacion->getId() . "/" $postulacion->getFormDocAcreditFileName(),
  615.                                 "new_filename" => $postulacion->getFormDocAcreditFileName(),
  616.                                 "original_name" => $postulacion->getFormDocAcreditFileNameOriginal()
  617.                             ];
  618.                             $docListadoPersonas = [
  619.                                 "path" => "/documentos/postulaciones/postulacion_" $postulacion->getId() . "/" $postulacion->getFormDocPersFileName(),
  620.                                 "new_filename" => $postulacion->getFormDocPersFileName(),
  621.                                 "original_name" => $postulacion->getFormDocPersFileNameOriginal()
  622.                             ];
  623.                             $punto->setDocEstatutoOrganizacion(!empty($postulacion->getFormDocEstatFileName()) ? $docEstatutoOrganizacion : []);
  624.                             $punto->setDocCertificadoVigenciaPersonaJuridica(!empty($postulacion->getFormDocVigencFileName()) ? $docCertificadoVigenciaPersonaJuridica : []);
  625.                             $punto->setDocAcreditaPersoneriaVigente(!empty($postulacion->getFormDocAcreditFileName()) ? $docAcreditaPersoneriaVigente : []);
  626.                             $punto->setDocListadoPersonas(!empty($postulacion->getFormDocPersFileName()) ? $docListadoPersonas : []);
  627.                             $punto->setOrganizacionComunitariaId($postulacion->getOrganizacionId());
  628.                             $punto->setRut($postulacion->getRut());
  629.                             $punto->setDv($postulacion->getDv());
  630.                             $punto->setPostulacionPunto($postulacion);
  631.                             $pcPuntoCulturaRepository->save($punto);
  632.                         } else {
  633.                             if(!empty($punto)){
  634.                                 $punto->setActivo(false);
  635.                                 $pcPuntoCulturaRepository->save($punto);
  636.                             }
  637.                         }
  638.                     }
  639.                     $postulacionRepository->save($postulacion,true);
  640.                     if($save_finalizar){
  641.                         $this->addFlash('success''Evaluacion Colectiva guardada y finalizada exitosamente');
  642.                         return $this->redirect($this->generateUrl('eval_evaluador_col_home'));
  643.                     }else{
  644.                         $this->addFlash('success''Evaluacion Colectiva guardada exitosamente');
  645.                     }
  646.                 }else{
  647.                     $this->addFlash('danger'$msgDataValidacion);
  648.                 }
  649.                 } catch (\Exception $e) {
  650.                     $this->addFlash('danger''Ocurrió un error inesperado' $e->getMessage());
  651.                     return $this->redirectToRoute('eval_evaluador_col_calificar', ['id' => $id]);
  652.                 }
  653.             }else{
  654.                 foreach ($form->getErrors() as $error) {
  655.                     $message[] = $error->getMessage();
  656.                     $this->addFlash('danger'$error->getMessage());
  657.                 }
  658.                 //throw new HttpException(Codes::HTTP_BAD_REQUEST, implode("\n", $message));
  659.             }
  660.         }
  661.         $evaluacionesIndividuales $evaluacionService->getEvaluacionesByPostulacionId($id);
  662.         return $this->renderForm('evaluacion/evaluador-col-menu-calificar.html.twig', [
  663.             'postulacion'=>$postulacion,
  664.             'form' => $form,
  665.             'criteriosName'=>$criteriosName,
  666.             'evaluacionesIndividuales'=>$evaluacionesIndividuales,
  667.             'puntajeEvaluacion' => $puntajeEvaluacion,
  668.         ]);
  669.     }
  670.     /* --- Admisibilidad-Evaluador --- */
  671.     #[Route('/admisorEvaluador/home'name'admisor_evaluador_home')]
  672.     public function admisorEvaluadorHome(
  673.         Request $request,
  674.         EvaluacionService $evaluacionService
  675.         ): Response
  676.     {
  677.         $userActual $this->getUser();
  678.         if (!$userActual){
  679.             $this->addFlash('warning''Sesión Expirada!');
  680.             return $this->redirect($this->generateUrl('admin_login'));
  681.         }
  682.         if (!$userActual->isActivo()) {
  683.             $this->addFlash('warning''Usuario inactivo');
  684.             return $this->redirect($this->generateUrl('admin_login'));
  685.         }
  686.         $postulaciones $evaluacionService->getPostulacionesEnviadas();
  687.         return $this->render('evaluacion/admisorEvaluador-home.html.twig', [
  688.             'postulaciones'=>$postulaciones
  689.         ]);
  690.     }
  691.     /* --- Ambito General --- */
  692.     /* --- Supervisor --- */
  693.     #[Route('/supervisor/home'name'supervisor_home')]
  694.     public function supervisorHome(
  695.         Request $request,
  696.         EvaluacionService $evaluacionService,
  697.         ConvocatoriaRepository $convocatoriaRepository,
  698.         RegionRepository $regionRepository
  699.         ): Response
  700.     {
  701.         $userActual $this->getUser();
  702.         if (!$userActual){
  703.             $this->addFlash('warning''Sesión Expirada!');
  704.             return $this->redirect($this->generateUrl('admin_login'));
  705.         }
  706.         if (!$userActual->isActivo()) {
  707.             $this->addFlash('warning''Usuario inactivo');
  708.             return $this->redirect($this->generateUrl('admin_login'));
  709.         }
  710.         if(
  711.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  712.             !$this->isGranted('ROLE_SUPERVISOR_POS')
  713.             ){
  714.             $this->addFlash('warning''Acceso denegado');
  715.             return $this->redirect($this->generateUrl('admin_home'));
  716.         }
  717.         $convocatorias $convocatoriaRepository->findAll();
  718.         $regiones = [];
  719.         if($userActual->isSuperAdmin()){
  720.             $regiones $regionRepository->findAll();
  721.         } else  {
  722.             $regiones $userActual->getRegiones();
  723.         }
  724.         $regionesLabel = [];
  725.         foreach($regiones as $regionOb){
  726.             $regionesLabel[] = $regionOb->getNombre();
  727.         }
  728.         //Paginacion
  729.         $page $request->query->getInt('page'1);
  730.         $limit 10;
  731.         $filters = [
  732.             'id' => $request->query->get('id'),
  733.             'organizacionName' => $request->query->get('organizacionName'),
  734.             'rut' => $request->query->get('rut'),
  735.             'racRegion' => $request->query->get('racRegion'),
  736.             'convocatoria' => $request->query->get('convocatoria'),
  737.             'evaluacion' => $request->query->get('evaluacion'),
  738.             'estado' => $request->query->get('estado'),
  739.         ];
  740.         $postulaciones $evaluacionService->getPostulacionesEnviadasByRegionPaginatedWithFiltersAdministrador(
  741.             $regionesLabel,
  742.             $userActual->isSuperAdmin(),
  743.             $page,
  744.             $limit,
  745.             $filters
  746.         );
  747.         return $this->render('evaluacion/supervisor-menu-home.html.twig', [
  748.             'postulaciones'=>$postulaciones,
  749.             'filters'=>$filters,
  750.             'regiones'=> $regiones,
  751.             'convocatorias' => $convocatorias,
  752.         ]);
  753.     }
  754.     // public function supervisorHome(
  755.     //     Request $request,
  756.     //     EvaluacionService $evaluacionService,
  757.     //     PostulacionService $postulacionService,
  758.     //     UserRepository $userRepository
  759.     //     ): Response
  760.     // {
  761.     //     $userActual = $this->getUser();
  762.     //     if (!$userActual){
  763.     //         return $this->redirect($this->generateUrl('admin_login'));
  764.     //     }
  765.     //     // $hasAccess = in_array('ROLE_ADMIN', $userActual->getRoles());
  766.     //     // if(!(in_array('ROLE_SUPERVISOR', $userActual->getRoles()))){
  767.     //     //     return $this->redirect('/admin/home');
  768.     //     // }
  769.     //     if (($userActual->getRegion()!==null)){
  770.     //         $region = $userActual->getRegion()->getNombre();
  771.     //     }else{
  772.     //         $region = "-";
  773.     //     }
  774.     //     $postulaciones = $evaluacionService->getPostulacionesEnviadas();
  775.     //     /*
  776.     //     $evaluadoresRegion=0;
  777.     //     $usersByRegion = $userRepository->findByRegion($userActual->getRegion()->getId());
  778.     //     foreach($usersByRegion as $user){
  779.     //         if (in_array("ROLE_EVALUADOR_IND", $user->getRoles())) {
  780.     //             $evaluadoresRegion++;
  781.     //         }
  782.     //     }
  783.     //     */
  784.     //     return $this->render('evaluacion/supervisor-home.html.twig', [
  785.     //         'postulaciones'=>$postulaciones,
  786.     //         'region'=>$region,
  787.     //         //'totalUserEvalInd'=>$evaluadoresRegion,
  788.     //     ]);
  789.     // }
  790.     #[Route('/supervisor/postulacion/ver/{id}'name'supervisor_postulacion_ver')]
  791.     public function supervisorPostulacionVer(
  792.         Request $request,
  793.         Int $id,
  794.         EvaluacionService $evaluacionService,
  795.         PostulacionRepository $postulacionRepository
  796.         ): Response
  797.     {
  798.         $userActual $this->getUser();
  799.         if (!$userActual){
  800.             $this->addFlash('warning''Sesión Expirada!');
  801.             return $this->redirect($this->generateUrl('admin_login'));
  802.         }
  803.         if (!$userActual->isActivo()) {
  804.             $this->addFlash('warning''Usuario inactivo');
  805.             return $this->redirect($this->generateUrl('admin_login'));
  806.         }
  807.         if(
  808.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  809.             !$this->isGranted('ROLE_SUPERVISOR_POS')
  810.             ){
  811.             $this->addFlash('warning''Acceso denegado');
  812.             return $this->redirect($this->generateUrl('admin_home'));
  813.         }
  814.         // $hasAccess = in_array('ROLE_ADMIN', $userActual->getRoles());
  815.         // if(!(in_array('ROLE_SUPERVISOR', $userActual->getRoles()))){
  816.         //     return $this->redirect('/admin/home');
  817.         // }
  818.         $postulacion $evaluacionService->getPostulacionForAdmisibilidadEvaluar($id);
  819.         return $this->renderForm('evaluacion/supervisor-menu-postulacion-ver.html.twig', [
  820.             'postulacion'=>$postulacion,
  821.         ]);
  822.     }
  823.         /* --- Supervisor --- */
  824.     #[Route('/administrador/home'name'administrador_home')]
  825.     public function administradorHome(
  826.         Request $request,
  827.         EvaluacionService $evaluacionService,
  828.         ConvocatoriaRepository $convocatoriaRepository,
  829.         RegionRepository $regionRepository
  830.         ): Response
  831.     {
  832.         $userActual $this->getUser();
  833.         if (!$userActual){
  834.             $this->addFlash('warning''Sesión Expirada!');
  835.             return $this->redirect($this->generateUrl('admin_login'));
  836.         }
  837.         if (!$userActual->isActivo()) {
  838.             $this->addFlash('warning''Usuario inactivo');
  839.             return $this->redirect($this->generateUrl('admin_login'));
  840.         }
  841.         if(
  842.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  843.             !$this->isGranted('ROLE_ADMINISTRADOR_POS')
  844.             ){
  845.             $this->addFlash('warning''Acceso denegado');
  846.             return $this->redirect($this->generateUrl('admin_home'));
  847.         }
  848.         $convocatorias $convocatoriaRepository->findAll();
  849.         $regiones = [];
  850.         if($userActual->isSuperAdmin()){
  851.             $regiones $regionRepository->findAll();
  852.         } else  {
  853.             $regiones $userActual->getRegiones();
  854.         }
  855.         $regionesLabel = [];
  856.         foreach($regiones as $regionOb){
  857.             $regionesLabel[] = $regionOb->getNombre();
  858.         }
  859.         //Paginacion
  860.         $page $request->query->getInt('page'1);
  861.         $limit 10;
  862.         $filters = [
  863.             'id' => $request->query->get('id'),
  864.             'organizacionName' => $request->query->get('organizacionName'),
  865.             'rut' => $request->query->get('rut'),
  866.             'racRegion' => $request->query->get('racRegion'),
  867.             'convocatoria' => $request->query->get('convocatoria'),
  868.             'evaluacion' => $request->query->get('evaluacion'),
  869.             'estado' => $request->query->get('estado'),
  870.         ];
  871.         $postulaciones $evaluacionService->getPostulacionesEnviadasByRegionPaginatedWithFiltersAdministrador(
  872.             $regionesLabel,
  873.             $userActual->isSuperAdmin(),
  874.             $page,
  875.             $limit,
  876.             $filters
  877.         );
  878.         return $this->render('evaluacion/administrador-menu-home.html.twig', [
  879.             'postulaciones'=>$postulaciones,
  880.             'filters'=>$filters,
  881.             'regiones'=> $regiones,
  882.             'convocatorias' => $convocatorias,
  883.         ]);
  884.     }
  885.     // public function administradorHome(
  886.     //     Request $request,
  887.     //     EvaluacionService $evaluacionService,
  888.     //     PostulacionService $postulacionService,
  889.     //     UserRepository $userRepository
  890.     //     ): Response
  891.     // {
  892.     //     $userActual = $this->getUser();
  893.     //     if (!$userActual){
  894.     //         return $this->redirect($this->generateUrl('admin_login'));
  895.     //     }
  896.     //     // $hasAccess = in_array('ROLE_ADMIN', $userActual->getRoles());
  897.     //     // if(!(in_array('ROLE_SUPERVISOR', $userActual->getRoles()))){
  898.     //     //     return $this->redirect('/admin/home');
  899.     //     // }
  900.     //     if (($userActual->getRegion()!==null)){
  901.     //         $region = $userActual->getRegion()->getNombre();
  902.     //     }else{
  903.     //         $region = "-";
  904.     //     }
  905.     //     $postulaciones = $evaluacionService->getPostulacionesEnviadas();
  906.     //     /*
  907.     //     $evaluadoresRegion=0;
  908.     //     $usersByRegion = $userRepository->findByRegion($userActual->getRegion()->getId());
  909.     //     foreach($usersByRegion as $user){
  910.     //         if (in_array("ROLE_EVALUADOR_IND", $user->getRoles())) {
  911.     //             $evaluadoresRegion++;
  912.     //         }
  913.     //     }
  914.     //     */
  915.     //     return $this->render('evaluacion/supervisor-home.html.twig', [
  916.     //         'postulaciones'=>$postulaciones,
  917.     //         'region'=>$region,
  918.     //         //'totalUserEvalInd'=>$evaluadoresRegion,
  919.     //     ]);
  920.     // }
  921.     #[Route('/administrador/postulacion/ver/{id}'name'administrador_postulacion_ver')]
  922.     public function administradorPostulacionVer(
  923.         Request $request,
  924.         Int $id,
  925.         EvaluacionService $evaluacionService,
  926.         PostulacionRepository $postulacionRepository
  927.         ): Response
  928.     {
  929.         $userActual $this->getUser();
  930.         if (!$userActual){
  931.             $this->addFlash('warning''Sesión Expirada!');
  932.             return $this->redirect($this->generateUrl('admin_login'));
  933.         }
  934.         if (!$userActual->isActivo()) {
  935.             $this->addFlash('warning''Usuario inactivo');
  936.             return $this->redirect($this->generateUrl('admin_login'));
  937.         }
  938.         if(
  939.             !$this->isGranted('ROLE_SUPER_ADMIN') &&
  940.             !$this->isGranted('ROLE_ADMINISTRADOR_POS')
  941.             ){
  942.             $this->addFlash('warning''Acceso denegado');
  943.             return $this->redirect($this->generateUrl('admin_home'));
  944.         }
  945.         // $hasAccess = in_array('ROLE_ADMIN', $userActual->getRoles());
  946.         // if(!(in_array('ROLE_SUPERVISOR', $userActual->getRoles()))){
  947.         //     return $this->redirect('/admin/home');
  948.         // }
  949.         $postulacion $evaluacionService->getPostulacionForAdmisibilidadEvaluar($id);
  950.         $form $this->createForm(AdministracionPostulacionType::class, $postulacion);
  951.         if ($request->isMethod('POST')) {
  952.             $form->handleRequest($request);
  953.             if ($form->isSubmitted() && $form->isValid()) {
  954.                 try {
  955.                     $dataFiles $request->files->all();
  956.                     $docCertificadoEvaluacion $form->get('form_certificado_evaluacion')->getData();
  957.                     if (isset($docCertificadoEvaluacion)) {
  958.                         try {
  959.                             $originalName=$docCertificadoEvaluacion->getClientOriginalName();
  960.                             $newFilename $originalName.'-'.uniqid().'.'.$docCertificadoEvaluacion->guessExtension();
  961.                             $projectRoot $this->getParameter('kernel.project_dir');
  962.                             $dirToMove =$projectRoot.'/public/documentos/postulaciones/postulacion_'.$postulacion->getId();
  963.                             if (!is_dir$dirToMove ) ) {
  964.                                 mkdir($dirToMove0777true);
  965.                             }
  966.                             $docCertificadoEvaluacion->move(
  967.                                 $dirToMove,
  968.                                 $newFilename
  969.                             );
  970.                             $docCertificadoEvaluacionSave = [
  971.                                 "path" => "/documentos/postulaciones/postulacion_" $postulacion->getId() . "/" $newFilename,
  972.                                 "new_filename" => $newFilename,
  973.                                 "original_name" => $originalName
  974.                             ];
  975.                             $postulacion->setCertificadoEvaluacion($docCertificadoEvaluacionSave);
  976.                         } catch (FileException $e) {
  977.                             $postulacion->setCertificadoEvaluacion(null);
  978.                         }
  979.                     }
  980.                     $postulacionRepository->save($postulaciontrue);
  981.                     $this->addFlash('success''Modificacion guardado exitosamente');
  982.                     return $this->redirectToRoute('eval_administrador_postulacion_ver', ['id' => $id]);
  983.                 } catch (\Exception $e) {
  984.                     $this->addFlash('danger''Ocurrió un error al guardar el usuario' $e->getMessage());
  985.                     return $this->redirectToRoute('eval_administrador_postulacion_ver', ['id' => $id]);
  986.                 }
  987.             }else{
  988.                 foreach ($form->getErrors() as $error) {
  989.                     $message[] = $error->getMessage();
  990.                     $this->addFlash('danger'$error->getMessage());
  991.                 }
  992.             }
  993.         }
  994.         return $this->renderForm('evaluacion/administrador-menu-postulacion-ver.html.twig', [
  995.             'postulacion'=>$postulacion,
  996.             'form' => $form,
  997.         ]);
  998.     }
  999.     #[Route('/reporte/generar/{name}'name'reporte_generar')]
  1000.     public function supervisorReporte(
  1001.         Request $request,
  1002.         String $name,
  1003.         EvaluacionService $evaluacionService,
  1004.         PostulacionRepository $postulacionRepository
  1005.         ): Response
  1006.     {
  1007.         $userActual $this->getUser();
  1008.         if (!$userActual){
  1009.             $this->addFlash('warning''Sesión Expirada!');
  1010.             return $this->redirect($this->generateUrl('admin_login'));
  1011.         }
  1012.         if (!$userActual->isActivo()) {
  1013.             $this->addFlash('warning''Usuario inactivo');
  1014.             return $this->redirect($this->generateUrl('admin_login'));
  1015.         }
  1016.         $projectRoot $this->getParameter('kernel.project_dir');
  1017.         $fileName "export-".$name.".csv";
  1018.         $dirReport =$projectRoot.'/public/documentos';
  1019.         $headers = array();
  1020.         $data =array();
  1021.         if ($name=="general"){
  1022.             $headers=array(
  1023.                 "Id",
  1024.                 "Usuario - Rut",
  1025.                 "Usuario- Nombre",
  1026.                 "Usuario - Apellidos",
  1027.                 "Organización - Rut ",
  1028.                 "Organización - Nombre",
  1029.                 "Organización - Region",
  1030.                 "Postulación - Convocatoria",
  1031.                 "Postulación - Fecha",
  1032.                 "Postulación - Email Notificación",
  1033.                 "Admisibilidad - Fecha",
  1034.                 "Admisibilidad - Por",
  1035.                 "Admisibilidad - ¿Es Admisible?",
  1036.                 "Admisibilidad - Observaciones",
  1037.                 "Evaluacion - Fecha",
  1038.                 "Evaluacion - Puntaje Final",
  1039.                 "Evaluacion - Justificación Final",
  1040.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - PORCENTAJE AUTOGESTIÓN FINANCIERA - Nota",
  1041.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - PORCENTAJE AUTOGESTIÓN FINANCIERA - Justificación",
  1042.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - ASOCIATIVIDAD - Nota",
  1043.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - ASOCIATIVIDAD - Justificación",
  1044.                 "Evaluacion - 2. Territorio - VINCULACIÓN TERRITORIAL - Nota",
  1045.                 "Evaluacion - 2. Territorio - VINCULACIÓN TERRITORIAL - Justificación",
  1046.                 "Evaluacion - 2. Territorio - PARTICIPACIÓN COMUNITARIA - Nota",
  1047.                 "Evaluacion - 2. Territorio - PARTICIPACIÓN COMUNITARIA - Justificación",
  1048.                 "Evaluacion - 3. Objetivos de la organización de base comunitaria - OBJETIVOS DE LA ORGANIZACION - Nota",
  1049.                 "Evaluacion - 3. Objetivos de la organización de base comunitaria - OBJETIVOS DE LA ORGANIZACION - Justificación",
  1050.                 "Evaluacion - 4. Practicas o iniciativas artisticas culturales  - PRÁCTICAS O INICIATIVAS CULTURALES - Nota",
  1051.                 "Evaluacion - 4. Practicas o iniciativas artisticas culturales  - PRÁCTICAS O INICIATIVAS CULTURALES - Justificación"
  1052.             );
  1053.             $postulaciones $evaluacionService->getPostulacionesEnviadas();
  1054.             foreach($postulaciones as $postulacion){
  1055.                         $admisibilidadFecha = ( $postulacion->getAdmisibilidadAt() != null) ? date_format($postulacion->getAdmisibilidadAt(),"d/m/Y H:i:s") : '-';
  1056.                         $admisibilidadBy = ( $postulacion->getAdmisibilidadby() != null) ? $postulacion->getAdmisibilidadBy()->getNombres() : '-';
  1057.                         $evalFecha = ($postulacion->getEvalNotaFinalAt() != null) ? date_format($postulacion->getEvalNotaFinalAt(),"d/m/Y H:i:s") : "-";
  1058.                         $evalNotaFinal = ($postulacion->getEvalNotaFinalAt() != null) ? number_format($postulacion->getEvalPuntajeFinal(),2',''.') : "-";
  1059.                         $evalJustFinal = ($postulacion->getEvalNotaFinalAt() != null) ? $postulacion->getEvalJustFinal() : "-";
  1060.                         $data[]=array(
  1061.                             $postulacion->getId(),
  1062.                             $postulacion->getRut(),
  1063.                             $postulacion->getNombres(),
  1064.                             $postulacion->getApellidos(),
  1065.                             $postulacion->getOrganizacionRut(),
  1066.                             $postulacion->getOrganizacionName(),
  1067.                             $postulacion->getRacRegion(),
  1068.                             $postulacion->getConvocatoria(),
  1069.                             date_format($postulacion->getPostulatedAt(),"d/m/Y H:i:s"),
  1070.                             $postulacion->getEmail(),
  1071.                             $admisibilidadFecha,
  1072.                             $admisibilidadBy,
  1073.                             $postulacion->getAdmisibilidadIsAdmisibleState(),
  1074.                             $postulacion->getAdmisibilidadObservacionesPub(),
  1075.                             $evalFecha,
  1076.                             $evalNotaFinal,
  1077.                             $evalJustFinal,
  1078.                             $postulacion->getEvalNotaConformacionC1(),
  1079.                             $postulacion->getEvalJustConformacionC1(),
  1080.                             $postulacion->getEvalNotaConformacionC2(),
  1081.                             $postulacion->getEvalJustConformacionC2(),
  1082.                             $postulacion->getEvalNotaTerritorioC1(),
  1083.                             $postulacion->getEvalJustTerritorioC1(),
  1084.                             $postulacion->getEvalNotaTerritorioC2(),
  1085.                             $postulacion->getEvalJustTerritorioC2(),
  1086.                             $postulacion->getEvalNotaObjetivosC1(),
  1087.                             $postulacion->getEvalJustObjetivosC1(),
  1088.                             $postulacion->getEvalNotaPracticasC1(),
  1089.                             $postulacion->getEvalJustPracticasC1()
  1090.                         );
  1091.             }
  1092.         }
  1093.         if ($name=="acta-evaluacion-regional"){
  1094.             $headers=array(
  1095.                 "Id",
  1096.                 "Usuario - Rut",
  1097.                 "Usuario- Nombre",
  1098.                 "Usuario - Apellidos",
  1099.                 "Organización - Rut ",
  1100.                 "Organización - Nombre",
  1101.                 "Organización - Region",
  1102.                 "Postulación - Convocatoria",
  1103.                 "Postulación - Fecha",
  1104.                 "Postulación - Email Notificación",
  1105.                 "Admisibilidad - Fecha",
  1106.                 "Admisibilidad - Por",
  1107.                 "Admisibilidad - ¿Es Admisible?",
  1108.                 "Admisibilidad - Observaciones",
  1109.                 "Evaluacion - Estado",
  1110.                 "Evaluacion - Fecha",
  1111.                 "Evaluacion - Puntaje Final",
  1112.                 "Evaluacion - Justificación Final",
  1113.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - PORCENTAJE AUTOGESTIÓN FINANCIERA - Nota",
  1114.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - PORCENTAJE AUTOGESTIÓN FINANCIERA - Justificación",
  1115.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - ASOCIATIVIDAD - Nota",
  1116.                 "Evaluacion - 1. Conformación de la organización de base comunitaria - ASOCIATIVIDAD - Justificación",
  1117.                 "Evaluacion - 2. Territorio - VINCULACIÓN TERRITORIAL - Nota",
  1118.                 "Evaluacion - 2. Territorio - VINCULACIÓN TERRITORIAL - Justificación",
  1119.                 "Evaluacion - 2. Territorio - PARTICIPACIÓN COMUNITARIA - Nota",
  1120.                 "Evaluacion - 2. Territorio - PARTICIPACIÓN COMUNITARIA - Justificación",
  1121.                 "Evaluacion - 3. Objetivos de la organización de base comunitaria - OBJETIVOS DE LA ORGANIZACION - Nota",
  1122.                 "Evaluacion - 3. Objetivos de la organización de base comunitaria - OBJETIVOS DE LA ORGANIZACION - Justificación",
  1123.                 "Evaluacion - 4. Practicas o iniciativas artisticas culturales  - PRÁCTICAS O INICIATIVAS CULTURALES - Nota",
  1124.                 "Evaluacion - 4. Practicas o iniciativas artisticas culturales  - PRÁCTICAS O INICIATIVAS CULTURALES - Justificación"
  1125.             );
  1126.             $userActual $this->getUser();
  1127.             //$postulacionesEvaluacionesRegion = $evaluacionService->getPostulacionAndEvaluacionByRegionToEvaluarColectivo($userActual->getRegion()->getNombre());
  1128.             $postulacionesEvaluacionesRegion $evaluacionService->getPostulacionesActaEvaluacionRegional($userActual->getRegion()->getNombre());
  1129.             foreach($postulacionesEvaluacionesRegion as $postulacion){
  1130.                 if ($postulacion->getConvocatoria()){
  1131.                     if ($postulacion->getConvocatoria()->isAdmisibilidadActiva()){
  1132.                         $admisibilidadFecha = ( $postulacion->getAdmisibilidadAt() != null) ? date_format($postulacion->getAdmisibilidadAt(),"d/m/Y H:i:s") : '-';
  1133.                         $admisibilidadBy = ( $postulacion->getAdmisibilidadby() != null) ? $postulacion->getAdmisibilidadBy()->getNombres() : '-';
  1134.                         $evalFinalizada = ($postulacion->isEvalIsFinalizada()) ? "Finalizada" "En Curso";
  1135.                         $evalFecha = ($postulacion->getEvalNotaFinalAt() != null) ? date_format($postulacion->getEvalNotaFinalAt(),"d/m/Y H:i:s") : "-";
  1136.                         $evalNotaFinal = ($postulacion->getEvalNotaFinalAt() != null) ? number_format($postulacion->getEvalPuntajeFinal(),2',''.') : "-";
  1137.                         $evalJustFinal = ($postulacion->getEvalNotaFinalAt() != null) ? $postulacion->getEvalJustFinal() : "-";
  1138.                         $data[]=array(
  1139.                             $postulacion->getId(),
  1140.                             $postulacion->getRut(),
  1141.                             $postulacion->getNombres(),
  1142.                             $postulacion->getApellidos(),
  1143.                             $postulacion->getOrganizacionRut(),
  1144.                             $postulacion->getOrganizacionName(),
  1145.                             $postulacion->getRacRegion(),
  1146.                             $postulacion->getConvocatoria(),
  1147.                             date_format($postulacion->getPostulatedAt(),"d/m/Y H:i:s"),
  1148.                             $postulacion->getEmail(),
  1149.                             $admisibilidadFecha,
  1150.                             $admisibilidadBy,
  1151.                             $postulacion->getAdmisibilidadIsAdmisibleState(),
  1152.                             $postulacion->getAdmisibilidadObservacionesPub(),
  1153.                             $evalFinalizada,
  1154.                             $evalFecha,
  1155.                             $evalNotaFinal,
  1156.                             $evalJustFinal,
  1157.                             $postulacion->getEvalNotaConformacionC1(),
  1158.                             $postulacion->getEvalJustConformacionC1(),
  1159.                             $postulacion->getEvalNotaConformacionC2(),
  1160.                             $postulacion->getEvalJustConformacionC2(),
  1161.                             $postulacion->getEvalNotaTerritorioC1(),
  1162.                             $postulacion->getEvalJustTerritorioC1(),
  1163.                             $postulacion->getEvalNotaTerritorioC2(),
  1164.                             $postulacion->getEvalJustTerritorioC2(),
  1165.                             $postulacion->getEvalNotaObjetivosC1(),
  1166.                             $postulacion->getEvalJustObjetivosC1(),
  1167.                             $postulacion->getEvalNotaPracticasC1(),
  1168.                             $postulacion->getEvalJustPracticasC1()
  1169.                         );
  1170.                     }
  1171.                 }
  1172.             }
  1173.         }
  1174.         $response = new StreamedResponse();
  1175.         $response->headers->set('Cache-Control''no-cache');
  1176.         $response->headers->set('Content-Type''application/force-download');
  1177.         $response->headers->set('Content-Disposition'$response->headers->makeDisposition(
  1178.             ResponseHeaderBag::DISPOSITION_ATTACHMENT,
  1179.             "$name.csv"
  1180.         ));
  1181.         $headers $headers;
  1182.         $lines $data;
  1183.         $response->setCallback(function () use ($headers$lines) {
  1184.             $handle fopen('php://output''w+');
  1185.             // Mandatory: Use bom + "Content-Type: application/force-download" => to allow to display special characters with excel
  1186.             fwrite($handle$bom chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF')));
  1187.             // headers
  1188.             fputcsv($handle$headers';');
  1189.             // data
  1190.             foreach ($lines as $line) {
  1191.                 fputcsv($handle$line';');
  1192.             }
  1193.             fclose($handle);
  1194.         });
  1195.         return $response;
  1196.         /*
  1197.         //$tmpFileName = (new Filesystem())->tempnam(sys_get_temp_dir(), 'sb_');
  1198.         $tmpFileName =$dirReport."/".$fileName;
  1199.         $tmpFile = fopen($tmpFileName, 'wb+');
  1200.         if (!\is_resource($tmpFile)) {
  1201.             throw new \RuntimeException('Unable to create a temporary file.');
  1202.         }
  1203.         foreach ($data as $line) {
  1204.             fputcsv($tmpFile, $line, ';');
  1205.         }
  1206.         $response = $this->file($tmpFileName, $fileName);
  1207.         $response->headers->set('Content-type', 'application/csv');
  1208.         fclose($tmpFile);
  1209.         return $response; // That's it! 😁
  1210.         */
  1211.         /*
  1212.         $postulaciones = $evaluacionService->getPostulacionesEnviadas();
  1213.         header('Content-Type: text/csv; charset=utf-8');
  1214.         header('Content-Disposition: attachment; filename="FooBarFileName_' . date('Ymd') . '.csv"');
  1215.         header("Pragma: no-cache");
  1216.         header("Expires: 0");
  1217.         $this->outputCSV($results);
  1218.         */
  1219.         /*
  1220.         $postulacion = $evaluacionService->getPostulacionForAdmisibilidadEvaluar($id);
  1221.         return $this->renderForm('evaluacion/supervisor-postulacion-ver.html.twig', [
  1222.             'postulacion'=>$postulacion,
  1223.         ]);
  1224.         */
  1225.     }
  1226.     /* --- Fin Supervisor --- */
  1227.     /**
  1228.      * @Route("/rac-puntos-eval-view/{id}", name="racPuntosEvalView")
  1229.      */
  1230.     public function racPuntosEvalView(
  1231.         Request $request,
  1232.         Int $id,
  1233.         EvaluacionService $evaluacionService,
  1234.         ActividadComunitariaRepository $actividadComunitariaRepository,
  1235.         ActividadTipoRepository $actividadTipoRepository,
  1236.         ParticipacionComunitariaRepository $participacionComunitariaRepository
  1237.     )
  1238.     {
  1239.         $userActual $this->getUser();
  1240.         if (!$userActual){
  1241.             $this->addFlash('warning''Sesión Expirada!');
  1242.             return $this->redirect($this->generateUrl('admin_login'));
  1243.         }
  1244.         if (!$userActual->isActivo()) {
  1245.             $this->addFlash('warning''Usuario inactivo');
  1246.             return $this->redirect($this->generateUrl('admin_login'));
  1247.         }
  1248.         $postulacion $evaluacionService->getPostulacionById($id);
  1249.         $form $this->createForm(PostulacionType::class, $postulacion);
  1250.         $actividadesComunitarias$actividadComunitariaRepository->findAll(array(), array('id' => 'ASC'));
  1251.         $actividadesTipo $actividadTipoRepository->findAll(array(),array('nombre' => 'ASC'));
  1252.         $participacionesComunitaria$participacionComunitariaRepository->findAll(array(), array('id' => 'ASC'));
  1253.         $actividadesTemporalidad = array();
  1254.         $actividadesTemporalidad[]=array ("id"=>"enero","nombre"=>"Enero");
  1255.         $actividadesTemporalidad[]=array ("id"=>"febrero","nombre"=>"Febrero");
  1256.         $actividadesTemporalidad[]=array ("id"=>"marzo","nombre"=>"Marzo");
  1257.         $actividadesTemporalidad[]=array ("id"=>"abril","nombre"=>"Abril");
  1258.         $actividadesTemporalidad[]=array ("id"=>"mayo","nombre"=>"Mayo");
  1259.         $actividadesTemporalidad[]=array ("id"=>"junio","nombre"=>"Junio");
  1260.         $actividadesTemporalidad[]=array ("id"=>"julio","nombre"=>"Julio");
  1261.         $actividadesTemporalidad[]=array ("id"=>"agosto","nombre"=>"Agosto");
  1262.         $actividadesTemporalidad[]=array ("id"=>"septiembre","nombre"=>"Septiembre");
  1263.         $actividadesTemporalidad[]=array ("id"=>"octubre","nombre"=>"Octubre");
  1264.         $actividadesTemporalidad[]=array ("id"=>"noviembre","nombre"=>"Noviembre");
  1265.         $actividadesTemporalidad[]=array ("id"=>"diciembre","nombre"=>"Diciembre");
  1266.         return $this->renderForm(
  1267.             //'evaluacion/rac-puntos-eval-view.html.twig',
  1268.             'evaluacion/form-postulacion.html.twig',
  1269.             [
  1270.             'postulacion' => $postulacion,
  1271.             'form' => $form,
  1272.             'participacionesComunitaria'=>$participacionesComunitaria,
  1273.             'actividadesComunitarias'=>$actividadesComunitarias,
  1274.             'actividadesTipo'=>$actividadesTipo,
  1275.             'actividadesTemporalidad'=>$actividadesTemporalidad,
  1276.             'maxFileSize' => $_ENV['MAX_FILE_SIZE'] ?? 10
  1277.         ]);
  1278.     }
  1279.     /**
  1280.      * @Route("/admin-postulacion-encabezado-view/{id}", name="adminPostulacionEncabezadoView")
  1281.      */
  1282.     public function adminPostulacionEncabezadoView(
  1283.         Request $request,
  1284.         Int $id,
  1285.         EvaluacionService $evaluacionService
  1286.     )
  1287.     {
  1288.         $userActual $this->getUser();
  1289.         if (!$userActual){
  1290.             $this->addFlash('warning''Sesión Expirada!');
  1291.             return $this->redirect($this->generateUrl('admin_login'));
  1292.         }
  1293.         if (!$userActual->isActivo()) {
  1294.             $this->addFlash('warning''Usuario inactivo');
  1295.             return $this->redirect($this->generateUrl('admin_login'));
  1296.         }
  1297.         $postulacion $evaluacionService->getPostulacionById($id);
  1298.         return $this->renderForm(
  1299.             //'evaluacion/rac-puntos-eval-view.html.twig',
  1300.             'evaluacion/admin-postulacion-encabezado.html.twig',
  1301.             [
  1302.             'postulacion' => $postulacion,
  1303.         ]);
  1304.     }
  1305.     /**
  1306.      * @Route("/admin-postulacion-pie-view/{id}", name="adminPostulacionPieView")
  1307.      */
  1308.     public function adminPostulacionPieView(
  1309.         Request $request,
  1310.         Int $id,
  1311.         ParametroRepository $parametroRepository,
  1312.         EvaluacionService $evaluacionService
  1313.     )
  1314.     {
  1315.         $userActual $this->getUser();
  1316.         if (!$userActual){
  1317.             $this->addFlash('warning''Sesión Expirada!');
  1318.             return $this->redirect($this->generateUrl('admin_login'));
  1319.         }
  1320.         if (!$userActual->isActivo()) {
  1321.             $this->addFlash('warning''Usuario inactivo');
  1322.             return $this->redirect($this->generateUrl('admin_login'));
  1323.         }
  1324.         $postulacion $evaluacionService->getPostulacionById($id);
  1325.         $form $this->createForm(AdmisibilidadType::class, $postulacion);
  1326.         $evaluacionesIndividuales $evaluacionService->getEvaluacionesByPostulacionId($id);
  1327.         $criteriosName $postulacion->getCriterios();
  1328.         $formCol $this->createForm(EvaluacionColectivaType::class, $postulacion);
  1329.         $puntajeParaEvaluarAPuntoDeCultura $parametroRepository->findOneByNombre('PUNTAJE_EVALUACION');
  1330.         $puntajeEvaluacion = (float) $puntajeParaEvaluarAPuntoDeCultura->getValor();
  1331.         return $this->renderForm(
  1332.             'evaluacion/admin-postulacion-pie.html.twig',
  1333.             [
  1334.             'postulacion' => $postulacion,
  1335.             'form' => $form,
  1336.             'evaluacionesIndividuales'=>$evaluacionesIndividuales,
  1337.             'criteriosName' => $criteriosName,
  1338.             'formCol' => $formCol,
  1339.             'puntajeEvaluacion' => $puntajeEvaluacion,
  1340.         ]);
  1341.     }
  1342.     #[Route('/organizaciones_vinculo/all/{postulacion_id}'name'organizaciones_vinculo_all')]
  1343.     public function organizaciones_vinculo_all(
  1344.         Int $postulacion_id,
  1345.         Request $request,
  1346.         EvaluacionService $evaluacionService,
  1347.         OrganizacionVinculoRepository $organizacionVinculoRepository
  1348.         ):Response
  1349.     {
  1350.         $userActual $this->getUser();
  1351.         if (!$userActual){
  1352.             $this->addFlash('warning''Sesión Expirada!');
  1353.             return $this->redirect($this->generateUrl('admin_login'));
  1354.         }
  1355.         if (!$userActual->isActivo()) {
  1356.             $this->addFlash('warning''Usuario inactivo');
  1357.             return $this->redirect($this->generateUrl('admin_login'));
  1358.         }
  1359.         //$postulacion = $postulacionService->getPostulacionUsuarioSession($request);
  1360.         $postulacion $evaluacionService->getPostulacionById($postulacion_id);
  1361.         //$allItemsOrganizacionVinculo= $organizacionVinculoRepository->findAll(array("postulacion_id"=>$postulacion->getId()), array('id' => 'ASC'));
  1362.         $allItemsOrganizacionVinculo$organizacionVinculoRepository->findBy(array("postulacion"=>$postulacion), array('id' => 'ASC'));
  1363.         $organizacionesVinculoReturn =array();
  1364.         foreach ($allItemsOrganizacionVinculo as $itemsOrganizacionVinculo){
  1365.             $organizacionVinculo = new \stdClass;
  1366.             $organizacionVinculo->id $itemsOrganizacionVinculo->getId();
  1367.             $organizacionVinculo->nombre $itemsOrganizacionVinculo->getNombre();
  1368.             $organizacionVinculo->procedencia $itemsOrganizacionVinculo->getProcedencia();
  1369.             $organizacionesVinculoReturn[]=$organizacionVinculo;
  1370.         }
  1371.         return $this->json(
  1372.             data: ['status'=>'ok','data'=>$organizacionesVinculoReturn],
  1373.             status200,
  1374.             headers: ['Content-Type' => 'application/json;charset=UTF-8']
  1375.         );
  1376.     }
  1377.     #[Route('/descripcion_actividad_organizacion/list/{postulacion_id}'name'descripcion_actividad_organizacion_list')]
  1378.     public function descripcion_actividad_organizacion_list(
  1379.         Request $request,
  1380.         Int $postulacion_id,
  1381.         EvaluacionService $evaluacionService,
  1382.         DescripcionActividadOrganizacionRepository $descripcionActividadOrganizacionRepository,
  1383.         ActividadTipoRepository $actividadTipoRepository
  1384.         ):Response
  1385.     {
  1386.         $userActual $this->getUser();
  1387.         if (!$userActual){
  1388.             $this->addFlash('warning''Sesión Expirada!');
  1389.             return $this->redirect($this->generateUrl('admin_login'));
  1390.         }
  1391.         if (!$userActual->isActivo()) {
  1392.             $this->addFlash('warning''Usuario inactivo');
  1393.             return $this->redirect($this->generateUrl('admin_login'));
  1394.         }
  1395.         //$postulacion = $postulacionService->getPostulacionUsuarioSession($request);
  1396.         $postulacion $evaluacionService->getPostulacionById($postulacion_id);
  1397.         $allItemsDescripcionActividadOrganizacion$descripcionActividadOrganizacionRepository->findBy(array("postulacion"=>$postulacion), array('id' => 'ASC'));
  1398.         $descripcionActividadOrganizacionReturn =array();
  1399.         $descripcionActividadOrganizacionPermanenteReturn =array();
  1400.         $descripcionActividadOrganizacionEventualReturn =array();
  1401.         $disposition="ATTACHMENT";
  1402.         $disposition="DISPOSITION_INLINE";
  1403.         $relativePath "documentos";
  1404.         foreach ($allItemsDescripcionActividadOrganizacion as $item){
  1405.             $itemsDescripcion = new \stdClass;
  1406.             $itemsDescripcion->id $item->getId();
  1407.             $itemsDescripcion->postulacion_id $item->getPostulacion()->getId();
  1408.             $itemsDescripcion->nombre $item->getNombre();
  1409.             $itemsDescripcion->descripcion $item->getDescripcion();
  1410.             $itemsDescripcion->manera $item->getManera();
  1411.             //tipo
  1412.             $tipoArray=array();
  1413.             foreach($item->getTipo() as $itemTipo){
  1414.                 $tipoArray[]=array("id"=>$itemTipo->getId(),"nombre"=>$itemTipo->getNombre());
  1415.             }
  1416.             $itemsDescripcion->tipo $tipoArray;
  1417.             $itemsDescripcion->desde $item->getDesde();
  1418.             $itemsDescripcion->hasta $item->getHasta();
  1419.             $itemsDescripcion->is_actualidad $item->isActualidad();
  1420.             $itemsDescripcion->temporalidad $item->getTemporalidad();
  1421.             $itemsDescripcion->lugar $item->getLugar();
  1422.             $itemsDescripcion->lugar_descripcion $item->getLugarDescripcion();
  1423.             $itemsDescripcion->participacion_comunidad $item->getParticipacionComunidad();
  1424.             $itemsDescripcion->documentoDescripcion $item->getDocumentoDescripcion();
  1425.             $itemsDescripcion->documentoFileName $item->getDocumentoFileName();
  1426.             $itemsDescripcion->documentoFileNameOriginal $item->getDocumentoFileNameOriginal();
  1427.             //$itemsDescripcion->documentoRelativePathUrlDownload = $relativePath."/".$itemsDescripcion->documentoFileName."/postulaciones/postulacion_".$itemsDescripcion->postulacion_id."/".$disposition;
  1428.             $itemsDescripcion->documentoRelativePathUrlDownload $relativePath."/postulaciones/postulacion_".$itemsDescripcion->postulacion_id."/".$itemsDescripcion->documentoFileName;
  1429.             $descripcionActividadOrganizacionReturn[]=$itemsDescripcion;
  1430.         }
  1431.         return $this->json(
  1432.             data: [
  1433.                 'status'=>'ok',
  1434.                 'data'=>$descripcionActividadOrganizacionReturn],
  1435.             status200,
  1436.             headers: ['Content-Type' => 'application/json;charset=UTF-8']
  1437.         );
  1438.     }
  1439.     #[Route('/documentos_fundamento/get/{postulacion_id}'name'documentos_fundamento_get')]
  1440.     public function documentos_fundamento_get(
  1441.         Request $request,
  1442.         Int $postulacion_id,
  1443.         EvaluacionService $evaluacionService,
  1444.         DocumentoFundamentaDesarrollaActividadRepository $documentoFundamentaDesarrollaActividadRepository
  1445.         ):Response
  1446.     {
  1447.         $userActual $this->getUser();
  1448.         if (!$userActual){
  1449.             $this->addFlash('warning''Sesión Expirada!');
  1450.             return $this->redirect($this->generateUrl('admin_login'));
  1451.         }
  1452.         if (!$userActual->isActivo()) {
  1453.             $this->addFlash('warning''Usuario inactivo');
  1454.             return $this->redirect($this->generateUrl('admin_login'));
  1455.         }
  1456.         //$postulacion = $postulacionService->getPostulacionUsuarioSession($request);
  1457.         $postulacion $evaluacionService->getPostulacionById($postulacion_id);
  1458.         //$allItemsDocumentoFundamentaDesarrolla= $documentoFundamentaDesarrollaActividadRepository->findAll(array("postulacion_id"=>$postulacion->getId()), array('id' => 'ASC'));
  1459.         $allItemsDocumentoFundamentaDesarrolla$documentoFundamentaDesarrollaActividadRepository->findBy(array("postulacion"=>$postulacion), array('id' => 'ASC'));
  1460.         $documentosFundamentaReturn =array();
  1461.         $disposition="ATTACHMENT";
  1462.         $disposition="DISPOSITION_INLINE";
  1463.         $relativePath "documento/get";
  1464.         foreach ($allItemsDocumentoFundamentaDesarrolla as $itemDocumentoFundamentaDesarrolla){
  1465.             $itemsDocumento = new \stdClass;
  1466.             $itemsDocumento->id $itemDocumentoFundamentaDesarrolla->getId();
  1467.             $itemsDocumento->postulacion_id $itemDocumentoFundamentaDesarrolla->getPostulacion()->getId();
  1468.             $itemsDocumento->nombre $itemDocumentoFundamentaDesarrolla->getNombre();
  1469.             $itemsDocumento->descripcion $itemDocumentoFundamentaDesarrolla->getDescripcion();
  1470.             $itemsDocumento->fileName $itemDocumentoFundamentaDesarrolla->getFileName();
  1471.             $itemsDocumento->fileNameOriginal $itemDocumentoFundamentaDesarrolla->getFileNameOriginal();
  1472.             $itemsDocumento->relativePathUrlDownload $relativePath."/".$itemsDocumento->fileName."/postulacion_".$itemsDocumento->postulacion_id."/".$disposition;
  1473.             $documentosFundamentaReturn[]=$itemsDocumento;
  1474.         }
  1475.         return $this->json(
  1476.             data: ['status'=>'ok','data'=>$documentosFundamentaReturn],
  1477.             status200,
  1478.             headers: ['Content-Type' => 'application/json;charset=UTF-8']
  1479.         );
  1480.     }
  1481.     /**
  1482.      * @Route("/admin-menu-admisibilidad-view", name="adminMenuAdmisibilidadView")
  1483.      */
  1484.     public function adminMenuAdmisibilidadView(
  1485.         Request $request,
  1486.         AdminService $adminService
  1487.     )
  1488.     {
  1489.         $userActual $this->getUser();
  1490.         if (!$userActual){
  1491.             $this->addFlash('warning''Sesión Expirada!');
  1492.             return $this->redirect($this->generateUrl('admin_login'));
  1493.         }
  1494.         if (!$userActual->isActivo()) {
  1495.             $this->addFlash('warning''Usuario inactivo');
  1496.             return $this->redirect($this->generateUrl('admin_login'));
  1497.         }
  1498.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles(), 'eval_admisor_home');
  1499.         return $this->renderForm(
  1500.             'base_admin_menu.html.twig',
  1501.             ['menuAdmin' => $menuAdmin]
  1502.         );
  1503.     }
  1504.         /**
  1505.      * @Route("/admin-menu-individual-view", name="adminMenuIndividualView")
  1506.      */
  1507.     public function adminMenuIndividualView(
  1508.         Request $request,
  1509.         AdminService $adminService
  1510.     )
  1511.     {
  1512.         $userActual $this->getUser();
  1513.         if (!$userActual){
  1514.             $this->addFlash('warning''Sesión Expirada!');
  1515.             return $this->redirect($this->generateUrl('admin_login'));
  1516.         }
  1517.         if (!$userActual->isActivo()) {
  1518.             $this->addFlash('warning''Usuario inactivo');
  1519.             return $this->redirect($this->generateUrl('admin_login'));
  1520.         }
  1521.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles(), 'eval_evaluador_ind_home');
  1522.         return $this->renderForm(
  1523.             'base_admin_menu.html.twig',
  1524.             ['menuAdmin' => $menuAdmin]
  1525.         );
  1526.     }
  1527.         /**
  1528.      * @Route("/admin-menu-colectiva-view", name="adminMenuColectivaView")
  1529.      */
  1530.     public function adminMenuColectivaView(
  1531.         Request $request,
  1532.         AdminService $adminService
  1533.     )
  1534.     {
  1535.         $userActual $this->getUser();
  1536.         if (!$userActual){
  1537.             $this->addFlash('warning''Sesión Expirada!');
  1538.             return $this->redirect($this->generateUrl('admin_login'));
  1539.         }
  1540.         if (!$userActual->isActivo()) {
  1541.             $this->addFlash('warning''Usuario inactivo');
  1542.             return $this->redirect($this->generateUrl('admin_login'));
  1543.         }
  1544.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles(), 'eval_evaluador_col_home');
  1545.         return $this->renderForm(
  1546.             'base_admin_menu.html.twig',
  1547.             ['menuAdmin' => $menuAdmin]
  1548.         );
  1549.     }
  1550.         /**
  1551.      * @Route("/admin-menu-supervision-postulaciones-view", name="adminMenuSupervisionPostulacionesView")
  1552.      */
  1553.     public function adminMenuSupervisionPostulacionesView(
  1554.         Request $request,
  1555.         AdminService $adminService
  1556.     )
  1557.     {
  1558.         $userActual $this->getUser();
  1559.         if (!$userActual){
  1560.             $this->addFlash('warning''Sesión Expirada!');
  1561.             return $this->redirect($this->generateUrl('admin_login'));
  1562.         }
  1563.         if (!$userActual->isActivo()) {
  1564.             $this->addFlash('warning''Usuario inactivo');
  1565.             return $this->redirect($this->generateUrl('admin_login'));
  1566.         }
  1567.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles(), 'eval_supervisor_home');
  1568.         return $this->renderForm(
  1569.             'base_admin_menu.html.twig',
  1570.             ['menuAdmin' => $menuAdmin]
  1571.         );
  1572.     }
  1573.         /**
  1574.      * @Route("/admin-menu-administracion-postulaciones-view", name="adminMenuAdmistracionPostulacionesView")
  1575.      */
  1576.     public function adminMenuAdmistracionPostulacionesView(
  1577.         Request $request,
  1578.         AdminService $adminService
  1579.     )
  1580.     {
  1581.         $userActual $this->getUser();
  1582.         if (!$userActual){
  1583.             $this->addFlash('warning''Sesión Expirada!');
  1584.             return $this->redirect($this->generateUrl('admin_login'));
  1585.         }
  1586.         if (!$userActual->isActivo()) {
  1587.             $this->addFlash('warning''Usuario inactivo');
  1588.             return $this->redirect($this->generateUrl('admin_login'));
  1589.         }
  1590.         $menuAdmin $adminService->getMenuAdmin($userActual->getRoles(), 'eval_administrador_home');
  1591.         return $this->renderForm(
  1592.             'base_admin_menu.html.twig',
  1593.             ['menuAdmin' => $menuAdmin]
  1594.         );
  1595.     }
  1596. }