src/Noahtech/Sistemas/InterjamaBundle/Controller/PrecargaController.php line 91

Open in your IDE?
  1. <?php
  2. namespace Noahtech\Sistemas\InterjamaBundle\Controller;
  3. use Noahtech\Sistemas\InterjamaBundle\Utils\Codes;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Noahtech\Sistemas\InterjamaBundle\Controller\BaseController;
  8. use Noahtech\Sistemas\InterjamaBundle\Handler\McPrecargaHandler;
  9. use Noahtech\Sistemas\InterjamaBundle\Handler\McPrecargaArchivoHandler;
  10. use Noahtech\Sistemas\InterjamaBundle\Handler\McClienteHandler;
  11. use Noahtech\Sistemas\InterjamaBundle\Handler\McVehiculoHandler;
  12. use Noahtech\Sistemas\InterjamaBundle\Handler\McChoferHandler;
  13. use Noahtech\Sistemas\InterjamaBundle\Handler\McTiposTramiteHandler;
  14. use Noahtech\Sistemas\InterjamaBundle\Handler\McCajaHandler;
  15. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  16. use Noahtech\Sistemas\InterjamaBundle\Utils\Constants;
  17. use Symfony\Component\HttpKernel\Exception\HttpException;
  18. class PrecargaController extends BaseController {
  19.     private function validarAdmin () {
  20.         $usuario $this->getUser();
  21.         if ($usuario) {
  22.             $admin false;
  23.             foreach ($usuario->getRoles() as $rol) {            
  24.                 if ($rol == 'ROLE_ADMIN'){
  25.                     $admin true;
  26.                 }
  27.             }
  28.             if (!$admin){
  29.                 throw new AccessDeniedException("No tiene permiso para acceder a esta pagina.");
  30.             }
  31.         } else {
  32.             throw new AccessDeniedException("No tiene permiso para acceder a esta pagina."); 
  33.         }
  34.     }
  35.     private function validarChofer ($tipo$numero$id=null) {
  36.         $chofer $this->get(McChoferHandler::class)->getChoferDuplicate($tipo$numero$id);
  37.         if (!is_null($chofer)) {
  38.             throw new HttpException(409"Ya existe un chofer con el tipo y número de documento ingresados.");
  39.         }
  40.     }
  41.     
  42.    /**
  43.      * @Route("/admin/precargas/tramites/finalizados", name="admin_precargas_tramites_finalizados_listado")
  44.      * @return type
  45.      */
  46.     public function precargaFinalizadasListadoAction() {
  47.         $this->validarAdmin();
  48.         $usuario $this->getUser();               
  49.         $this->setTitle("Listado de trámites finalizados | InterJama");
  50.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  51.         $this->addBreadCrumb("Listado de trámites finalizados"true);
  52.         $clientes $this->get(McClienteHandler::class)->getClientes();
  53.         $this->data['data'] = null;
  54.         $this->data['clientes'] = $clientes;
  55.          return $this->render(
  56.                         '@NoahtechSistemasInterjama/admin/precargas/finalizadas/listado.html.twig'$this->data
  57.         );
  58.     }
  59.     /**
  60.      * consulta de tramite finalizado
  61.      *
  62.      * @Route("/admin/ajax/tramites/finalizados/search", name="admin_ajax_tramites_finalizados_listado", methods={"POST"}, condition="request.isXmlHttpRequest()")
  63.      */
  64.     public function searchPrecargasFinalizadasAction(Request $request) {
  65.         $this->validarAdmin();
  66.         $searchParam $request->request->all();        
  67.         $usuario $this->getUser();               
  68.         $currentPage $request->query->get('page');
  69.         $sortField $request->query->get('sort');
  70.         $sortDirection $request->query->get('direction');
  71.         $currentPage null == $currentPage $currentPage;
  72.         $offset = ($currentPage 1) * 100;
  73.         $limit 100;
  74.         try {
  75.             /** @var McPrecargaHandler $handler */
  76.             $handler $this->get(McPrecargaHandler::class);
  77.             $lp $handler->searchPrecargasFinalizadas($offset$limit$sortField$sortDirection$searchParam);
  78.             $lp->setCurrentPage($currentPage);
  79.             $lp->setPageSize(100);
  80.             $this->response->setData($lp);
  81.             $this->response->setCode(Codes::OK);
  82.         } catch (Exception $e) {
  83.             $this->response->setCode(Codes::ERROR);
  84.             $this->response->setMessage($e->getMessage());
  85.         }
  86.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  87.         return new Response($serializedEntity);
  88.     }
  89.     /**
  90.      * @Route("/admin/precargas", name="admin_precargas_listado")
  91.      * @return type
  92.      */
  93.     public function precargaListadoAction() {
  94.         $this->validarAdmin();
  95.         $usuario $this->getUser();               
  96.         $this->setTitle("Bandeja de entrada | InterJama");
  97.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  98.         $this->addBreadCrumb("Bandeja de entrada"true);
  99.         $clientes $this->get(McClienteHandler::class)->getClientes();
  100.         $this->data['data'] = null;
  101.         $this->data['clientes'] = $clientes;
  102.          return $this->render(
  103.                         '@NoahtechSistemasInterjama/admin/precargas/listado.html.twig'$this->data
  104.         );
  105.     }
  106.     /**
  107.      * consulta de precarga
  108.      *
  109.      * @Route("/admin/ajax/precargas/search", name="admin_ajax_precargas_listado", methods={"POST"}, condition="request.isXmlHttpRequest()")
  110.      */
  111.     public function searchAction(Request $request) {
  112.         $this->validarAdmin();
  113.         $searchParam $request->request->all();        
  114.         $usuario $this->getUser();               
  115.         $currentPage $request->query->get('page');
  116.         $sortField $request->query->get('sort');
  117.         $sortDirection $request->query->get('direction');
  118.         $currentPage null == $currentPage $currentPage;
  119.         $offset = ($currentPage 1) * 100;
  120.         $limit 100;
  121.         try {
  122.             /** @var McPrecargaHandler $handler */
  123.             $handler $this->get(McPrecargaHandler::class);
  124.             $lp $handler->search($offset$limit$sortField$sortDirection$searchParam);
  125.             $lp->setCurrentPage($currentPage);
  126.             $lp->setPageSize(100);
  127.             $this->response->setData($lp);
  128.             $this->response->setCode(Codes::OK);
  129.         } catch (Exception $e) {
  130.             $this->response->setCode(Codes::ERROR);
  131.             $this->response->setMessage($e->getMessage());
  132.         }
  133.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  134.         return new Response($serializedEntity);
  135.     }
  136.     /**
  137.      * @Route("/admin/precarga/nueva", name="admin_precarga_nueva")
  138.      * @return type
  139.      */
  140.     public function precargaNuevoAction() {
  141.         $this->validarAdmin();
  142.         $this->setTitle("Nuevo ingreso");
  143.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  144.         $this->addBreadCrumb("Bandeja de entrada"false"admin_precargas_listado");        
  145.         $this->addBreadCrumb("Nueva ingreso"true);        
  146.         $this->data['data'] = null;
  147.         return $this->render(
  148.                         '@NoahtechSistemasInterjama/admin/precargas/nueva.html.twig'$this->data
  149.         );
  150.     }
  151.     /**
  152.      * consulta de un vehículo por dominio principal
  153.      *
  154.      * @Route("/admin/ajax/precargas/vehiculo/dominio/{dominio}/exists", name="ajax_admin_precargas_vehiculo_dominio_exists", methods={"GET"}, condition="request.isXmlHttpRequest()")
  155.      */
  156.     public function dominioExistsAction($dominio) {
  157.         $this->validarAdmin();
  158.         try {
  159.             $handler $this->get(McPrecargaHandler::class);
  160.             $vehiculo $handler->getVehiculoByDominio($dominio);
  161.             $this->response->setData($vehiculo);
  162.             $this->response->setCode(Codes::OK);
  163.         } catch (Exception $e) {
  164.             $this->response->setCode(Codes::ERROR);
  165.             $this->response->setMessage($e->getMessage());
  166.         }
  167.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  168.         return new Response($serializedEntity);
  169.     }
  170.     /**
  171.      * Guarda una precarga
  172.      *
  173.      * @Route("/admin/ajax/precargas", name="admin_ajax_precargas_save", methods={"POST"}, condition="request.isXmlHttpRequest()")
  174.      */
  175.     public function postPrecargaSaveAction(Request $request) {        
  176.         $this->validarAdmin();
  177.         $archivos = (isset($_FILES)) ? $_FILES null;
  178.         try {
  179.             $handler $this->get(McPrecargaHandler::class);
  180.             $usuario $this->getUser();        
  181.             $precarga $handler->getPrecargaFromRequest($request$usuario);       
  182.             $result $handler->save($precarga$archivos$request);
  183.             $this->response->setData($result);
  184.             $this->response->setCode(Codes::OK);
  185.         } catch (Exception $e) {
  186.             $this->response->setCode(Codes::ERROR);
  187.             $this->response->setMessage($e->getMessage());
  188.         }
  189.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  190.         return new Response($serializedEntity);
  191.     }
  192.     
  193.     /**
  194.      * @Route("/admin/precargas/{id}", name="admin_precargas_modificacion")
  195.      * @return type
  196.      */
  197.     public function precargaModificacionAction($id) {
  198.         $this->validarAdmin();
  199.         $this->setTitle("Modificar ingreso");
  200.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  201.         $this->addBreadCrumb("Bandeja de entrada"false"admin_precargas_listado");
  202.         $this->addBreadCrumb("Modificar ingreso"true);
  203.         $this->data['data'] = $id;
  204.         return $this->render(
  205.                         '@NoahtechSistemasInterjama/admin/precargas/modificacion.html.twig'$this->data
  206.         );
  207.     }
  208.     /**
  209.      * Devuelve una precarga
  210.      *
  211.      * @Route("/admin/ajax/precargas/{id}", name="admin_ajax_precarga_get_by_id", methods={"GET"}, condition="request.isXmlHttpRequest()")
  212.      */
  213.     public function getPrecargaByIdAction($id) {
  214.         $this->validarAdmin();
  215.         try {
  216.             $handler $this->get(McPrecargaHandler::class);
  217.             $precarga $handler->getById($id);
  218.             $this->response->setData($precarga);
  219.             $this->response->setCode(Codes::OK);
  220.         } catch (Exception $e) {
  221.             $this->response->setCode(Codes::ERROR);
  222.             $this->response->setMessage($e->getMessage());
  223.         }
  224.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  225.         return new Response($serializedEntity);
  226.     }
  227.     /**
  228.      * Modifica una precarga
  229.      *
  230.      * @Route("/admin/ajax/precargas/{id}", name="admin_ajax_precarga_update", methods={"POST"}, condition="request.isXmlHttpRequest()")
  231.      */
  232.     public function putUpdateAction(Request $request$id) {
  233.         $this->validarAdmin();
  234.         $archivos = (isset($_FILES)) ? $_FILES null;  
  235.         try {          
  236.             $handler $this->get(McPrecargaHandler::class);
  237.             $usuario $this->getUser();
  238.             $precarga $handler->getPrecargaFromRequest($request$usuario$id);        
  239.             $result $handler->update($precarga$archivos$request$id);        
  240.             $this->response->setData($result);
  241.             $this->response->setCode(Codes::OK);
  242.         } catch (Exception $e) {
  243.             $this->response->setCode(Codes::ERROR);
  244.             $this->response->setMessage($e->getMessage());
  245.         }
  246.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  247.         return new Response($serializedEntity);
  248.     }
  249.     /**
  250.      * @Route("/admin/precargas/{id}/archivos", name="admin_precargas_by_id_archivos")
  251.      * @return type
  252.      */
  253.     public function precargaArchivosListadoAction($id) {
  254.         $this->validarAdmin();
  255.         $usuario $this->getUser();               
  256.         $this->setTitle("Archivos adjuntos");
  257.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  258.         $this->addBreadCrumb("Bandeja de entrada"false"admin_precargas_listado");        
  259.         $this->addBreadCrumb("Archivos adjuntos"true);
  260.         $precargaArchivos $this->get(McPrecargaArchivoHandler::class)->findAllByPrecarga($id);      
  261.         $this->data['data'] = $id;
  262.         $this->data['archivos'] = $precargaArchivos;
  263.          return $this->render(
  264.                         '@NoahtechSistemasInterjama/admin/precargas/archivos.html.twig'$this->data
  265.         );
  266.     }
  267.     /**
  268.      * descarga de archivos de una precarga
  269.      *
  270.      * @Route("/admin/ajax/precargas/{id}/download/archivos", name="admin_ajax_precarga_get_by_id_descarga")
  271.      */
  272.     public function downloadFileByPrecargaAction($id) {
  273.         try {
  274.             $this->validarAdmin();
  275.             $handler $this->get(McPrecargaArchivoHandler::class);
  276.             return $handler->downloadFilesByPrecarga($id);
  277.         } catch (Exception $e) {
  278.             return $e->getMessage();
  279.         }
  280.     }
  281.     /**
  282.      * Guarda un chofer
  283.      *
  284.      * @Route("/admin/ajax/chofer", name="admin_chofer_save", methods={"POST"}, condition="request.isXmlHttpRequest()")
  285.      */
  286.     public function postChoferSaveAction(Request $request) {
  287.         $this->validarAdmin();
  288.         $this->validarChofer($request->request->get('tipo'), $request->request->get('numero'));
  289.         try {
  290.             $handler $this->get(McChoferHandler::class);            
  291.             $chofer $handler->getChoferFromRequest($requestnullnull);
  292.             $result $handler->save($chofer);
  293.             $this->response->setData($result);
  294.             $this->response->setCode(Codes::OK);            
  295.         } catch (Exception $e) {
  296.             $this->response->setCode(Codes::ERROR);
  297.             $this->response->setMessage($e->getMessage());
  298.         }
  299.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  300.         return new Response($serializedEntity);       
  301.     }
  302.     /**
  303.      * @Route("/admin/precargas/tramites/finalizados/deudas", name="admin_precargas_tramites_finalizados_deudas_listado")
  304.      * @return type
  305.      */
  306.     public function precargaFinalizadasDeudasListadoAction() {
  307.         $this->validarAdmin();
  308.         $usuario $this->getUser();               
  309.         $this->setTitle("Listado de Empresas con deudas | InterJama");
  310.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  311.         $this->addBreadCrumb("Listado de Empresas con deudas"true);
  312.         $clientes $this->get(McClienteHandler::class)->getClientes();
  313.         $this->data['data'] = null;
  314.         $this->data['clientes'] = $clientes;
  315.          return $this->render(
  316.                         '@NoahtechSistemasInterjama/admin/precargas/finalizadas/deudas.html.twig'$this->data
  317.         );
  318.     }
  319.     /**
  320.      * consulta de tramite finalizado
  321.      *
  322.      * @Route("/admin/ajax/tramites/finalizados/deudas/search", name="admin_ajax_tramites_finalizados_deudas_listado", methods={"POST"}, condition="request.isXmlHttpRequest()")
  323.      */
  324.     public function searchPrecargasFinalizadasDeudasAction(Request $request) {
  325.         $this->validarAdmin();
  326.         $searchParam $request->request->all();        
  327.         $usuario $this->getUser();               
  328.         $currentPage $request->query->get('page');
  329.         $sortField $request->query->get('sort');
  330.         $sortDirection $request->query->get('direction');
  331.         $currentPage null == $currentPage $currentPage;
  332.         $offset = ($currentPage 1) * 100;
  333.         $limit 100;
  334.         try {
  335.             /** @var McPrecargaHandler $handler */
  336.             $handler $this->get(McPrecargaHandler::class);
  337.             $lp $handler->searchPrecargasFinalizadasConDeudas($offset$limit$sortField$sortDirection$searchParam);
  338.             $lp->setCurrentPage($currentPage);
  339.             $lp->setPageSize(100);
  340.             $this->response->setData($lp);
  341.             $this->response->setCode(Codes::OK);
  342.         } catch (Exception $e) {
  343.             $this->response->setCode(Codes::ERROR);
  344.             $this->response->setMessage($e->getMessage());
  345.         }
  346.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  347.         return new Response($serializedEntity);
  348.     }
  349.     /**
  350.      * @Route("/admin/precargas/tramites/finalizados/{id}", name="admin_precargas_tramite_finalizada_update")
  351.      * @return type
  352.      */
  353.     public function precargaUpdateAtencionAction($id) {
  354.         $this->validarAdmin();
  355.         $this->setTitle("Editar Trámite");
  356.         $this->addBreadCrumb("Inicio - Atención"false"admin_home");
  357.         $this->addBreadCrumb("Listado de trámites finalizados"false"admin_precargas_tramites_finalizados_listado");
  358.         $this->addBreadCrumb("Editar Trámite"true);
  359.         $tiposTramite $this->get(McTiposTramiteHandler::class)->getTiposTramite();
  360.         $caja $this->get(McCajaHandler::class)->getCajaAbierta('operador');
  361.         $clientes $this->get(McClienteHandler::class)->getClientes();
  362.         $this->data['data'] = $id;
  363.         $this->data['clientes'] = $clientes;
  364.         $this->data['tiposTramite'] = $tiposTramite;
  365.         $this->data['caja'] = $caja;
  366.         return $this->render(
  367.                         '@NoahtechSistemasInterjama/admin/precargas/finalizadas/update.html.twig'$this->data
  368.         );
  369.     }
  370.     /**
  371.      * Modifica una atencion de precarga
  372.      *
  373.      * @Route("/admin/ajax/precargas/{id}/modificacion/atencion", name="admin_ajax_precarga_modificacion_atencion_update", methods={"PUT"}, condition="request.isXmlHttpRequest()")
  374.      */
  375.     public function editAtencionPrecargaAction(Request $request$id) {
  376.         $this->validarAdmin();
  377.         $handler $this->get(McPrecargaHandler::class);
  378.         $usuario $this->getUser();
  379.         $precarga $handler->getAtencionPrecargaFromRequest($request,$id$usuario);        
  380.         $result $handler->updateAtencion($precarga$id);        
  381.         $this->response->setData($result);
  382.         $this->response->setCode(Codes::OK);
  383.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  384.         return new Response($serializedEntity);
  385.     }
  386.     /**
  387.      * Devuelve una precarga finalizada
  388.      *
  389.      * @Route("/admin/ajax/precargas/atencion/{id}", name="admin_ajax_precarga_atencion_get_by_id", methods={"GET"}, condition="request.isXmlHttpRequest()")
  390.      */
  391.     public function getAtencionPrecargaByIdAction($id) {
  392.         $this->validarAdmin();
  393.         try {
  394.             $handler $this->get(McPrecargaHandler::class);
  395.             $precarga $handler->getPrecargaAtencionById($id);
  396.             $this->response->setData($precarga);
  397.             $this->response->setCode(Codes::OK);
  398.         } catch (Exception $e) {
  399.             $this->response->setCode(Codes::ERROR);
  400.             $this->response->setMessage($e->getMessage());
  401.         }
  402.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  403.         return new Response($serializedEntity);
  404.     }
  405.     /**
  406.      * 
  407.      * Descarga manifiesto de carga
  408.      * 
  409.      * @Route("/admin/ajax/precargas/{precargaId}/descarga/manifiesto", name="admin_ajax_precargas_manifiesto_descarga")
  410.      * 
  411.      */
  412.     public function descargaManifiestoPdfAction($precargaId) {        
  413.         try { 
  414.            $this->validarAdmin();           
  415.            return $this->get(McPrecargaHandler::class)->descargaManifiestoPdf($precargaId);
  416.         } catch (Exception $e) {
  417.            return $e->getMessage();
  418.         }
  419.    }
  420.    /**
  421.      * 
  422.      * Descarga Hoja de ruta
  423.      * 
  424.      * @Route("/admin/ajax/precargas/{precargaId}/descarga/hoja_ruta", name="admin_ajax_precargas_hoja_ruta_descarga")
  425.      * 
  426.      */
  427.     public function descargaHojaRutaPdfAction($precargaId) {        
  428.         try { 
  429.            $this->validarAdmin();           
  430.            return $this->get(McPrecargaHandler::class)->descargaHojaRutaPdf($precargaId);
  431.         } catch (Exception $e) {
  432.            return $e->getMessage();
  433.         }
  434.    }
  435.    /**
  436.      * 
  437.      * Descarga MCDTA
  438.      * 
  439.      * @Route("/admin/ajax/precargas/{precargaId}/descarga/mcdta", name="admin_ajax_precargas_mcdta_descarga")
  440.      * 
  441.      */
  442.     public function descargaMcdtaPdfAction($precargaId) {        
  443.         try { 
  444.            $this->validarAdmin();           
  445.            return $this->get(McPrecargaHandler::class)->descargaMcdtaPdf($precargaId);
  446.         } catch (Exception $e) {
  447.            return $e->getMessage();
  448.         }
  449.    }
  450.     /**
  451.      * 
  452.      * Descarga recibo de atención de precarga
  453.      * 
  454.      * @Route("/admin/ajax/precargas/{precargaId}/descarga/recibo", name="admin_ajax_precarga_recibo_descarga")
  455.      * 
  456.     */
  457.     public function descargaReciboAction($precargaId) {        
  458.         try { 
  459.            $this->validarAdmin();           
  460.            return $this->get(McPrecargaHandler::class)->descargaReciboPdf($precargaId);
  461.         } catch (Exception $e) {
  462.            return $e->getMessage();
  463.         }
  464.    }
  465.    /**
  466.      * 
  467.      * Descarga factura de Afip de atención de precarga
  468.      * 
  469.      * @Route("/atencion/ajax/precargas/afip/{precargaId}/tipo/{tipoFactura}/descarga", name="atencion_ajax_precarga_factura_descarga")
  470.      * 
  471.     */
  472.     public function descargaFacturaAfipAction($precargaId$tipoFactura) {        
  473.         try { 
  474.            $this->validarAtencion();           
  475.            return $this->get(McPrecargaHandler::class)->descargaFacturaAfipPdf($precargaId$tipoFactura);
  476.         } catch (Exception $e) {
  477.            return $e->getMessage();
  478.         }
  479.    }
  480.    /**
  481.      * descarga del formulario SENASA
  482.      *
  483.      * @Route("/admin/ajax/precargas/atencion/{id}/formulario/senasa", name="admin_ajax_precarga_atencion_formulario_senasa")
  484.      */
  485.     public function downloadSenasaAction(Request $request$id) {
  486.         $request_body file_get_contents('php://input');
  487.         $data json_decode($request_bodytrue);
  488.         try {
  489.             $this->validarAdmin();
  490.             $handler $this->get(McPrecargaHandler::class);
  491.             return $handler->downloadSenasa($data$id);
  492.         } catch (Exception $e) {
  493.             return $e->getMessage();
  494.         }
  495.     }
  496.     /**
  497.      * @Route("/admin/precargas/tramites/finalizados/deudas/cliente/{clienteId}", name="admin_precargas_tramites_finalizados_deudas_by_cliente_listado")
  498.      * @return type
  499.     */
  500.     public function precargaFinalizadasDeudasByClienteListadoAction($clienteId) {
  501.         $this->validarAdmin();
  502.         $usuario $this->getUser();               
  503.         $this->setTitle("Listado de deudas del Cliente | InterJama");
  504.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  505.         $this->addBreadCrumb("Listado de Empresas con deudas"false"admin_precargas_tramites_finalizados_deudas_listado");
  506.         $this->addBreadCrumb("Listado de Deudas"true);
  507.         $cliente $this->get(McClienteHandler::class)->getById($clienteId);
  508.         $this->data['data'] = null;
  509.         $this->data['cliente'] = $cliente;
  510.          return $this->render(
  511.                         '@NoahtechSistemasInterjama/admin/precargas/finalizadas/clientes/deudas.html.twig'$this->data
  512.         );
  513.     }
  514.     /**
  515.      * consulta de tramite con deudas por cliente
  516.      *
  517.      * @Route("/admin/ajax/tramites/finalizados/deudas/cliente/{clienteId}/search", name="admin_ajax_tramites_finalizados_deudas_by_cliente_listado", methods={"POST"}, condition="request.isXmlHttpRequest()")
  518.      */
  519.     public function searchPrecargasFinalizadasDeudasByClienteAction(Request $request$clienteId) {
  520.         $this->validarAdmin();
  521.         $searchParam $request->request->all();        
  522.         $usuario $this->getUser();               
  523.         $currentPage $request->query->get('page');
  524.         $sortField $request->query->get('sort');
  525.         $sortDirection $request->query->get('direction');
  526.         $currentPage null == $currentPage $currentPage;
  527.         $offset = ($currentPage 1) * 100;
  528.         $limit 100;
  529.         try {
  530.             /** @var McPrecargaHandler $handler */
  531.             $handler $this->get(McPrecargaHandler::class);
  532.             $lp $handler->searchPrecargasFinalizadasConDeudasByCliente($offset$limit$sortField$sortDirection$searchParam);
  533.             $lp->setCurrentPage($currentPage);
  534.             $lp->setPageSize(100);
  535.             $this->response->setData($lp);
  536.             $this->response->setCode(Codes::OK);
  537.         } catch (Exception $e) {
  538.             $this->response->setCode(Codes::ERROR);
  539.             $this->response->setMessage($e->getMessage());
  540.         }
  541.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  542.         return new Response($serializedEntity);
  543.     }
  544.     /**
  545.      * Actualiza las deudas de un cliente
  546.      *
  547.      * @Route("/admin/ajax/update/deudas/cliente", name="admin_ajax_tramite_deuda_update", methods={"PUT"}, condition="request.isXmlHttpRequest()")
  548.      */
  549.     public function putDeudaClienteAction(Request $request) {
  550.         $this->validarAdmin();
  551.         try {          
  552.             $handler $this->get(McPrecargaHandler::class);    
  553.             $result $handler->updateDeuda($request);        
  554.             $this->response->setData($result);
  555.             $this->response->setCode(Codes::OK);
  556.         } catch (Exception $e) {
  557.             $this->response->setCode(Codes::ERROR);
  558.             $this->response->setMessage($e->getMessage());
  559.         }
  560.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  561.         return new Response($serializedEntity);
  562.     }
  563.     /**
  564.      * 
  565.      * Descarga recibo de atención de precargas
  566.      * 
  567.      * @Route("/admin/ajax/precargas/cliente/{clienteId}/descarga/recibo", name="admin_ajax_precarga_by_cliente_recibo_descarga", methods={"POST"})
  568.      * 
  569.     */
  570.     public function descargaReciboMultipleAction($clienteIdRequest $request) {        
  571.         try { 
  572.            $this->validarAdmin();
  573.            // Obtener el contenido de la solicitud JSON
  574.             $data json_decode($request->getContent(), true);
  575.             // Obtener el array de tramites que llegó en el cuerpo de la solicitud
  576.             $tramitesIds $data['tramites'];
  577.             // Validar que haya trámites enviados en la solicitud
  578.             if (empty($tramitesIds)) {
  579.                 throw new Exception('No se han proporcionado trámites.');
  580.             }
  581.            return $this->get(McPrecargaHandler::class)->descargaReciboMultiplePdf($tramitesIds);
  582.         } catch (Exception $e) {
  583.            return $e->getMessage();
  584.         }
  585.    }
  586.    /**
  587.      * 
  588.      * Descarga Factura Afip Multiples
  589.      * 
  590.      * @Route("/admin/ajax/precargas/cliente/{clienteId}/factura/afip", name="admin_ajax_precarga_by_cliente_factura_afip", methods={"POST"})
  591.      * 
  592.     */
  593.     public function descargaFacturaAFipMultipleAction($clienteIdRequest $request) {        
  594.         try { 
  595.            $this->validarAdmin();
  596.            // Obtener el contenido de la solicitud JSON
  597.             $data json_decode($request->getContent(), true);
  598.             
  599.             // Obtener el array de tramites que llegó en el cuerpo de la solicitud
  600.             $tramitesIds $data['datos']['tramites'];
  601.             $comprobante $data['datos']['comprobante'];
  602.             // Validar que haya trámites enviados en la solicitud
  603.             if (empty($tramitesIds)) {
  604.                 throw new Exception('No se han proporcionado trámites.');
  605.             }
  606.            return $this->get(McPrecargaHandler::class)->descargaFacturaAfipMultiplePdf($tramitesIds$comprobante);
  607.         } catch (Exception $e) {
  608.            return $e->getMessage();
  609.         }
  610.    }
  611. }