general-library-union 2.9.39 → 2.9.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/general-library-union.mjs +5 -0
- package/esm2022/public-api.mjs +180 -0
- package/esm2022/src/app/core/componentes/breadcrumb/breadcrumb.component.mjs +40 -0
- package/esm2022/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.mjs +28 -0
- package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +194 -0
- package/esm2022/src/app/core/componentes/footer/footer.component.mjs +16 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +272 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.mjs +11 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.mjs +124 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.mjs +73 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.mjs +59 -0
- package/esm2022/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.mjs +21 -0
- package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +67 -0
- package/esm2022/src/app/core/componentes/menu/menu.component.mjs +37 -0
- package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +93 -0
- package/esm2022/src/app/core/core.module.mjs +23 -0
- package/esm2022/src/app/core/errores/authentication.error.mjs +7 -0
- package/esm2022/src/app/core/modelos/error-response.model.mjs +2 -0
- package/esm2022/src/app/core/modelos/table-column.model.mjs +2 -0
- package/esm2022/src/app/core/modelos/user.model.mjs +7 -0
- package/esm2022/src/app/core/plantilla-general/plantilla-general.template.mjs +230 -0
- package/esm2022/src/app/core/servicios/auth.service.mjs +185 -0
- package/esm2022/src/app/core/servicios/cargar-control-funcionalidad.service.mjs +57 -0
- package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +64 -0
- package/esm2022/src/app/core/servicios/error-interceptor.service.mjs +214 -0
- package/esm2022/src/app/core/servicios/guardias/auth.guard.mjs +66 -0
- package/esm2022/src/app/core/servicios/guardias/publico.guard.mjs +35 -0
- package/esm2022/src/app/core/servicios/interceptores/loading-interceptor.mjs +37 -0
- package/esm2022/src/app/core/servicios/interceptores/token-interceptor.service.mjs +180 -0
- package/esm2022/src/app/core/servicios/loading.service.mjs +43 -0
- package/esm2022/src/app/core/servicios/menu.service.mjs +146 -0
- package/esm2022/src/app/core/servicios/spinner-service.mjs +22 -0
- package/esm2022/src/app/core/servicios/storage.service.mjs +68 -0
- package/esm2022/src/app/core/servicios/template.service.mjs +99 -0
- package/esm2022/src/app/core/servicios/toast.service.mjs +120 -0
- package/esm2022/src/app/core/servicios/utils.service.mjs +335 -0
- package/esm2022/src/app/core/sharedlib.module.mjs +16 -0
- package/esm2022/src/app/core/utilidades/color.util.mjs +177 -0
- package/esm2022/src/app/layout/api/menuchangeevent.mjs +2 -0
- package/esm2022/src/app/layout/app.breadcrumb.component.mjs +71 -0
- package/esm2022/src/app/layout/app.footer.component.mjs +18 -0
- package/esm2022/src/app/layout/app.layout.component.mjs +188 -0
- package/esm2022/src/app/layout/app.layout.module.mjs +15 -0
- package/esm2022/src/app/layout/app.menu.component.mjs +51 -0
- package/esm2022/src/app/layout/app.menu.service.mjs +24 -0
- package/esm2022/src/app/layout/app.menuitem.component.mjs +296 -0
- package/esm2022/src/app/layout/app.menuprofile.component.mjs +78 -0
- package/esm2022/src/app/layout/app.rightmenu.component.mjs +24 -0
- package/esm2022/src/app/layout/app.sidebar.component.mjs +92 -0
- package/esm2022/src/app/layout/app.topbar.component.mjs +345 -0
- package/esm2022/src/app/layout/service/app.layout.service.mjs +134 -0
- package/esm2022/src/app/publico/pages/login/login.page.mjs +129 -0
- package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +51 -0
- package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +167 -0
- package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +20 -0
- package/esm2022/src/app/seguridad/constantes/ConstantesGenerales.mjs +30 -0
- package/esm2022/src/app/seguridad/constantes/ReporteEntradaConstantes.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/AplicacionModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/ArchivoPortalModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/AtributoPuntoModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/AtributoSSOportalModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/AuditoriaArchivoModel.mjs +11 -0
- package/esm2022/src/app/seguridad/modelos/CargueLineaModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/ColoresRGB.mjs +18 -0
- package/esm2022/src/app/seguridad/modelos/ColumnaFuenteModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/ColumnaWraperModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/ComplementoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/ComponentePaginaModel.mjs +21 -0
- package/esm2022/src/app/seguridad/modelos/ConexionModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/ContenidoHtmlPortalModel.mjs +21 -0
- package/esm2022/src/app/seguridad/modelos/ControlFuncionModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/CorreoModel.mjs +35 -0
- package/esm2022/src/app/seguridad/modelos/CorreoWSModel.mjs +37 -0
- package/esm2022/src/app/seguridad/modelos/CruceRecursoPuntoModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/DatoInicioModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/EjecucionReporteDataModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/EmpresaModel.mjs +25 -0
- package/esm2022/src/app/seguridad/modelos/EmpresaSeguridadModel.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/EntradaComplementoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/EtiquetaModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/Etiquetas.mjs +12 -0
- package/esm2022/src/app/seguridad/modelos/ForeingWraperModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/FuenteCampoAtributoModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/FuenteCampoModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/FuenteDato.mjs +19 -0
- package/esm2022/src/app/seguridad/modelos/FuenteEntradaModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/FuenteGeneralModel.mjs +37 -0
- package/esm2022/src/app/seguridad/modelos/FuenteLineaServicioModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/FuenteProcesoGeneralModel.mjs +11 -0
- package/esm2022/src/app/seguridad/modelos/FuenteServicioModel.mjs +51 -0
- package/esm2022/src/app/seguridad/modelos/FuncionalidadModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/GeneralModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/GrupoAccesoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/GrupoControlFuncionModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/GrupoFuenteModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/GrupoPermisoModel.mjs +14 -0
- package/esm2022/src/app/seguridad/modelos/JoinFromModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/ListaServicioModel.mjs +17 -0
- package/esm2022/src/app/seguridad/modelos/LlaveForaneaModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/LoginModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/MensajeSistemaModel.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/MenuPortalModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/ModulosModel.mjs +18 -0
- package/esm2022/src/app/seguridad/modelos/ObjetoReporteModel.mjs +6 -0
- package/esm2022/src/app/seguridad/modelos/PaginaPortalModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/ParametroComponenteModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/ParametrosGeneralModel.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/PermisoFuncionModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/PermisocontenidoModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/PeticionModel.mjs +16 -0
- package/esm2022/src/app/seguridad/modelos/PreguntaSeguridadModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/PropiedadModel.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/PublicacionWebModel.mjs +27 -0
- package/esm2022/src/app/seguridad/modelos/PuntoProcesoModel.mjs +7 -0
- package/esm2022/src/app/seguridad/modelos/RecursoPunto.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/RecursoPuntoModel.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/ReporteBanda.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumna.mjs +33 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumnario.mjs +69 -0
- package/esm2022/src/app/seguridad/modelos/ReporteColumnarioMarcador.mjs +24 -0
- package/esm2022/src/app/seguridad/modelos/ReporteEntradaModel.mjs +20 -0
- package/esm2022/src/app/seguridad/modelos/ReporteFuenteModel.mjs +124 -0
- package/esm2022/src/app/seguridad/modelos/ReporteMarcador.mjs +40 -0
- package/esm2022/src/app/seguridad/modelos/ReporteSoporte.mjs +10 -0
- package/esm2022/src/app/seguridad/modelos/ReporteTabla.mjs +13 -0
- package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/RolModel.mjs +39 -0
- package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +28 -0
- package/esm2022/src/app/seguridad/modelos/SistemaMensajeModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/SitioPortalModel.mjs +25 -0
- package/esm2022/src/app/seguridad/modelos/TablaFromModel.mjs +5 -0
- package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +54 -0
- package/esm2022/src/app/seguridad/modelos/TextoModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/TipoEtiqueta.mjs +8 -0
- package/esm2022/src/app/seguridad/modelos/UnionModel.mjs +12 -0
- package/esm2022/src/app/seguridad/modelos/UsuarioModel.mjs +53 -0
- package/esm2022/src/app/seguridad/modelos/UsuariogrupoModel.mjs +24 -0
- package/esm2022/src/app/seguridad/modelos/aplicacion-propiedad-model.mjs +15 -0
- package/esm2022/src/app/seguridad/modelos/contenidoCorreoModel.mjs +10 -0
- package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +154 -0
- package/esm2022/src/app/shared/servicios/cargar-archivos.service.mjs +54 -0
- package/esm2022/src/app/shared/servicios/cargar-mapas.service.mjs +46 -0
- package/esm2022/src/app/shared/servicios/encriptado-basico.service.mjs +53 -0
- package/esm2022/src/app/shared/servicios/general.service.mjs +104 -0
- package/esm2022/src/app/shared/servicios/parametros-navegacion.service.mjs +21 -0
- package/esm2022/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.mjs +370 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +187 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.mjs +85 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.mjs +347 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +206 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +328 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +1569 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.mjs +105 -0
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +114 -0
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +588 -0
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +177 -0
- package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +749 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +331 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.mjs +96 -0
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +675 -0
- package/esm2022/src/app/webcommon/pipes/dashboard.pipe.mjs +86 -0
- package/esm2022/src/app/webcommon/pipes/fuente.pipe.mjs +201 -0
- package/esm2022/src/app/webcommon/pipes/general.pipe.mjs +916 -0
- package/esm2022/src/app/webcommon/pipes/reporte-columnario.pipe.mjs +115 -0
- package/esm2022/src/app/webcommon/pipes/reporte-fuente.pipe.mjs +301 -0
- package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +267 -0
- package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +128 -0
- package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +293 -0
- package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +269 -0
- package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +515 -0
- package/esm2022/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.mjs +64 -0
- package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +159 -0
- package/esm2022/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.mjs +89 -0
- package/esm2022/src/app/webcommon/services/carguelinea.service.mjs +69 -0
- package/esm2022/src/app/webcommon/services/dashboard.service.mjs +253 -0
- package/esm2022/src/app/webcommon/services/ejecucionreporte.service.mjs +114 -0
- package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +88 -0
- package/esm2022/src/app/webcommon/services/fuentegeneral.service.mjs +68 -0
- package/esm2022/src/app/webcommon/services/homologacion.service.mjs +50 -0
- package/esm2022/src/app/webcommon/services/plantillas.service.mjs +129 -0
- package/esm2022/src/app/webcommon/services/reportes.service.mjs +95 -0
- package/esm2022/src/app/webcommon/webcommon.module.mjs +15 -0
- package/esm2022/src/environments/environment.mjs +24 -0
- package/fesm2022/general-library-union.mjs +15885 -0
- package/fesm2022/general-library-union.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +62 -73
- package/{public-api.ts → public-api.d.ts} +161 -201
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.d.ts +18 -0
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.d.ts +14 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +34 -0
- package/src/app/core/componentes/footer/footer.component.d.ts +9 -0
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +46 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/{Cambio.ts → Cambio.d.ts} +7 -13
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.d.ts +44 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.d.ts +45 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.d.ts +33 -0
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.d.ts +9 -0
- package/src/app/core/componentes/inicio-component/inicio-component.component.d.ts +24 -0
- package/src/app/core/componentes/menu/menu.component.d.ts +16 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.d.ts +32 -0
- package/src/app/core/core.module.d.ts +8 -0
- package/src/app/core/errores/authentication.error.d.ts +3 -0
- package/src/app/core/modelos/error-response.model.d.ts +9 -0
- package/src/app/core/modelos/table-column.model.d.ts +12 -0
- package/src/app/core/modelos/user.model.d.ts +6 -0
- package/src/app/core/plantilla-general/plantilla-general.template.d.ts +89 -0
- package/src/app/core/servicios/auth.service.d.ts +52 -0
- package/src/app/core/servicios/cargar-control-funcionalidad.service.d.ts +19 -0
- package/src/app/core/servicios/data-exporter-table.utils.d.ts +11 -0
- package/src/app/core/servicios/error-interceptor.service.d.ts +41 -0
- package/src/app/core/servicios/guardias/auth.guard.d.ts +17 -0
- package/src/app/core/servicios/guardias/publico.guard.d.ts +13 -0
- package/src/app/core/servicios/interceptores/loading-interceptor.d.ts +11 -0
- package/src/app/core/servicios/interceptores/token-interceptor.service.d.ts +26 -0
- package/src/app/core/servicios/loading.service.d.ts +22 -0
- package/src/app/core/servicios/menu.service.d.ts +35 -0
- package/src/app/core/servicios/spinner-service.d.ts +9 -0
- package/src/app/core/servicios/storage.service.d.ts +37 -0
- package/src/app/core/servicios/template.service.d.ts +20 -0
- package/src/app/core/servicios/toast.service.d.ts +48 -0
- package/src/app/core/servicios/utils.service.d.ts +42 -0
- package/src/app/core/sharedlib.module.d.ts +6 -0
- package/src/app/core/utilidades/color.util.d.ts +70 -0
- package/src/app/layout/api/{menuchangeevent.ts → menuchangeevent.d.ts} +4 -4
- package/src/app/layout/app.breadcrumb.component.d.ts +28 -0
- package/src/app/layout/app.footer.component.d.ts +8 -0
- package/src/app/layout/app.layout.component.d.ts +39 -0
- package/src/app/layout/app.layout.module.d.ts +6 -0
- package/src/app/layout/app.menu.component.d.ts +19 -0
- package/src/app/layout/app.menu.service.d.ts +12 -0
- package/src/app/layout/app.menuitem.component.d.ts +41 -0
- package/src/app/layout/app.menuprofile.component.d.ts +18 -0
- package/src/app/layout/app.rightmenu.component.d.ts +10 -0
- package/src/app/layout/app.sidebar.component.d.ts +34 -0
- package/src/app/layout/app.topbar.component.d.ts +79 -0
- package/src/app/layout/service/app.layout.service.d.ts +57 -0
- package/src/app/publico/pages/login/login.page.d.ts +40 -0
- package/src/app/publico/pages/not-found/not-found.page.d.ts +17 -0
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.d.ts +41 -0
- package/src/app/publico/pages/timeout/timeout.page.d.ts +10 -0
- package/src/app/seguridad/constantes/ConstantesGenerales.d.ts +25 -0
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.d.ts +7 -0
- package/src/app/seguridad/modelos/AplicacionModel.d.ts +7 -0
- package/src/app/seguridad/modelos/ArchivoPortalModel.d.ts +13 -0
- package/src/app/seguridad/modelos/AtributoPuntoModel.d.ts +8 -0
- package/src/app/seguridad/modelos/AtributoSSOportalModel.d.ts +16 -0
- package/src/app/seguridad/modelos/{AuditoriaArchivoModel.ts → AuditoriaArchivoModel.d.ts} +10 -13
- package/src/app/seguridad/modelos/CargueLineaModel.d.ts +12 -0
- package/src/app/seguridad/modelos/ColoresRGB.d.ts +17 -0
- package/src/app/seguridad/modelos/ColumnaFuenteModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{ColumnaWraperModel.ts → ColumnaWraperModel.d.ts} +6 -7
- package/src/app/seguridad/modelos/ComplementoModel.d.ts +6 -0
- package/src/app/seguridad/modelos/ComponentePaginaModel.d.ts +20 -0
- package/src/app/seguridad/modelos/ConexionModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{ContenidoHtmlPortalModel.ts → ContenidoHtmlPortalModel.d.ts} +20 -25
- package/src/app/seguridad/modelos/ControlFuncionModel.d.ts +7 -0
- package/src/app/seguridad/modelos/CorreoModel.d.ts +31 -0
- package/src/app/seguridad/modelos/CorreoWSModel.d.ts +33 -0
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{DatoInicioModel.ts → DatoInicioModel.d.ts} +6 -7
- package/src/app/seguridad/modelos/{EjecucionReporteDataModel.ts → EjecucionReporteDataModel.d.ts} +20 -21
- package/src/app/seguridad/modelos/EmpresaModel.d.ts +23 -0
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.d.ts +18 -0
- package/src/app/seguridad/modelos/{EntradaComplementoModel.ts → EntradaComplementoModel.d.ts} +6 -9
- package/src/app/seguridad/modelos/EtiquetaModel.d.ts +4 -0
- package/src/app/seguridad/modelos/Etiquetas.d.ts +10 -0
- package/src/app/seguridad/modelos/{ForeingWraperModel.ts → ForeingWraperModel.d.ts} +6 -9
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.d.ts +15 -0
- package/src/app/seguridad/modelos/{FuenteCampoModel.ts → FuenteCampoModel.d.ts} +16 -20
- package/src/app/seguridad/modelos/FuenteDato.d.ts +18 -0
- package/src/app/seguridad/modelos/FuenteEntradaModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{FuenteGeneralModel.ts → FuenteGeneralModel.d.ts} +36 -55
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.d.ts +16 -0
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.d.ts +10 -0
- package/src/app/seguridad/modelos/{FuenteServicioModel.ts → FuenteServicioModel.d.ts} +47 -61
- package/src/app/seguridad/modelos/FuncionalidadModel.d.ts +8 -0
- package/src/app/seguridad/modelos/GeneralModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{GrupoAccesoModel.ts → GrupoAccesoModel.d.ts} +6 -9
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.d.ts +9 -0
- package/src/app/seguridad/modelos/GrupoFuenteModel.d.ts +13 -0
- package/src/app/seguridad/modelos/GrupoPermisoModel.d.ts +13 -0
- package/src/app/seguridad/modelos/{JoinFromModel.ts → JoinFromModel.d.ts} +4 -4
- package/src/app/seguridad/modelos/ListaServicioModel.d.ts +16 -0
- package/src/app/seguridad/modelos/LlaveForaneaModel.d.ts +6 -0
- package/src/app/seguridad/modelos/LoginModel.d.ts +17 -0
- package/src/app/seguridad/modelos/MensajeSistemaModel.d.ts +7 -0
- package/src/app/seguridad/modelos/{MenuPortalModel.ts → MenuPortalModel.d.ts} +4 -5
- package/src/app/seguridad/modelos/ModulosModel.d.ts +14 -0
- package/src/app/seguridad/modelos/{ObjetoReporteModel.ts → ObjetoReporteModel.d.ts} +5 -6
- package/src/app/seguridad/modelos/PaginaPortalModel.d.ts +19 -0
- package/src/app/seguridad/modelos/ParametroComponenteModel.d.ts +8 -0
- package/src/app/seguridad/modelos/ParametrosGeneralModel.d.ts +8 -0
- package/src/app/seguridad/modelos/PermisoFuncionModel.d.ts +8 -0
- package/src/app/seguridad/modelos/PermisocontenidoModel.d.ts +18 -0
- package/src/app/seguridad/modelos/{PeticionModel.ts → PeticionModel.d.ts} +15 -20
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.d.ts +6 -0
- package/src/app/seguridad/modelos/PropiedadModel.d.ts +9 -0
- package/src/app/seguridad/modelos/PublicacionWebModel.d.ts +25 -0
- package/src/app/seguridad/modelos/PuntoProcesoModel.d.ts +6 -0
- package/src/app/seguridad/modelos/RecursoPunto.d.ts +12 -0
- package/src/app/seguridad/modelos/RecursoPuntoModel.d.ts +12 -0
- package/src/app/seguridad/modelos/ReporteBanda.d.ts +7 -0
- package/src/app/seguridad/modelos/ReporteColumna.d.ts +32 -0
- package/src/app/seguridad/modelos/ReporteColumnario.d.ts +68 -0
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.d.ts +23 -0
- package/src/app/seguridad/modelos/{ReporteEntradaModel.ts → ReporteEntradaModel.d.ts} +19 -21
- package/src/app/seguridad/modelos/{ReporteFuenteModel.ts → ReporteFuenteModel.d.ts} +87 -141
- package/src/app/seguridad/modelos/ReporteMarcador.d.ts +39 -0
- package/src/app/seguridad/modelos/ReporteSoporte.d.ts +9 -0
- package/src/app/seguridad/modelos/ReporteTabla.d.ts +12 -0
- package/src/app/seguridad/modelos/RespuestaModel.d.ts +8 -0
- package/src/app/seguridad/modelos/{RolModel.ts → RolModel.d.ts} +37 -41
- package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +25 -0
- package/src/app/seguridad/modelos/SistemaMensajeModel.d.ts +8 -0
- package/src/app/seguridad/modelos/SitioPortalModel.d.ts +24 -0
- package/src/app/seguridad/modelos/TablaFromModel.d.ts +4 -0
- package/src/app/seguridad/modelos/TareasModel.d.ts +49 -0
- package/src/app/seguridad/modelos/TextoModel.d.ts +8 -0
- package/src/app/seguridad/modelos/TipoEtiqueta.d.ts +7 -0
- package/src/app/seguridad/modelos/UnionModel.d.ts +11 -0
- package/src/app/seguridad/modelos/{UsuarioModel.ts → UsuarioModel.d.ts} +49 -60
- package/src/app/seguridad/modelos/UsuariogrupoModel.d.ts +22 -0
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.d.ts +13 -0
- package/src/app/seguridad/modelos/contenidoCorreoModel.d.ts +9 -0
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.d.ts +47 -0
- package/src/app/shared/servicios/cargar-archivos.service.d.ts +15 -0
- package/src/app/shared/servicios/cargar-mapas.service.d.ts +18 -0
- package/src/app/shared/servicios/encriptado-basico.service.d.ts +10 -0
- package/src/app/shared/servicios/general.service.d.ts +24 -0
- package/src/app/shared/servicios/parametros-navegacion.service.d.ts +9 -0
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.d.ts +78 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.d.ts +79 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.d.ts +29 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.d.ts +69 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.d.ts +51 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.d.ts +77 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +275 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.d.ts +42 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +35 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +143 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.d.ts +49 -0
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.d.ts +128 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.d.ts +64 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.d.ts +33 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.d.ts +149 -0
- package/src/app/webcommon/pipes/dashboard.pipe.d.ts +48 -0
- package/src/app/webcommon/pipes/fuente.pipe.d.ts +136 -0
- package/src/app/webcommon/pipes/general.pipe.d.ts +646 -0
- package/src/app/webcommon/pipes/reporte-columnario.pipe.d.ts +59 -0
- package/src/app/webcommon/pipes/reporte-fuente.pipe.d.ts +193 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.d.ts +59 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.d.ts +27 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.d.ts +64 -0
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.d.ts +63 -0
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.d.ts +97 -0
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.d.ts +21 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.d.ts +42 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.d.ts +30 -0
- package/src/app/webcommon/services/carguelinea.service.d.ts +19 -0
- package/src/app/webcommon/services/dashboard.service.d.ts +27 -0
- package/src/app/webcommon/services/ejecucionreporte.service.d.ts +34 -0
- package/src/app/webcommon/services/fechaUtils.service.d.ts +29 -0
- package/src/app/webcommon/services/fuentegeneral.service.d.ts +24 -0
- package/src/app/webcommon/services/homologacion.service.d.ts +17 -0
- package/src/app/webcommon/services/plantillas.service.d.ts +26 -0
- package/src/app/webcommon/services/reportes.service.d.ts +35 -0
- package/src/app/webcommon/webcommon.module.d.ts +6 -0
- package/src/environments/environment.d.ts +7 -0
- package/src/styles/primeng/sass/overrides/_theme_styles.scss +1 -1
- package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +1 -1
- package/.browserslistrc +0 -15
- package/.editorconfig +0 -16
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/angular.json +0 -143
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -21
- package/src/app/app.component.html +0 -12
- package/src/app/app.component.scss +0 -0
- package/src/app/app.component.spec.ts +0 -29
- package/src/app/app.component.ts +0 -34
- package/src/app/app.config.ts +0 -43
- package/src/app/app.module.ts +0 -10
- package/src/app/app.routes.ts +0 -88
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.html +0 -6
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/breadcrumb/breadcrumb.component.ts +0 -39
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.html +0 -1
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.scss +0 -0
- package/src/app/core/componentes/carga-breadcrumb/carga-breadcrumb.component.ts +0 -31
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html +0 -9
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.scss +0 -28
- package/src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts +0 -32
- package/src/app/core/componentes/filtro-general/filtro-general.component.html +0 -34
- package/src/app/core/componentes/filtro-general/filtro-general.component.scss +0 -3
- package/src/app/core/componentes/filtro-general/filtro-general.component.ts +0 -202
- package/src/app/core/componentes/footer/footer.component.html +0 -13
- package/src/app/core/componentes/footer/footer.component.scss +0 -3
- package/src/app/core/componentes/footer/footer.component.ts +0 -20
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.html +0 -267
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.scss +0 -21
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts +0 -275
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts +0 -118
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts +0 -76
- package/src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts +0 -67
- package/src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts +0 -11
- package/src/app/core/componentes/inicio-component/inicio-component.component.html +0 -29
- package/src/app/core/componentes/inicio-component/inicio-component.component.scss +0 -69
- package/src/app/core/componentes/inicio-component/inicio-component.component.ts +0 -65
- package/src/app/core/componentes/menu/menu.component.html +0 -13
- package/src/app/core/componentes/menu/menu.component.scss +0 -36
- package/src/app/core/componentes/menu/menu.component.ts +0 -35
- package/src/app/core/componentes/tabla-general/tabla-general.component.html +0 -90
- package/src/app/core/componentes/tabla-general/tabla-general.component.scss +0 -0
- package/src/app/core/componentes/tabla-general/tabla-general.component.ts +0 -96
- package/src/app/core/core.module.ts +0 -22
- package/src/app/core/errores/authentication.error.ts +0 -6
- package/src/app/core/modelos/error-response.model.ts +0 -9
- package/src/app/core/modelos/table-column.model.ts +0 -10
- package/src/app/core/modelos/user.model.ts +0 -6
- package/src/app/core/plantilla-general/plantilla-general.template.html +0 -139
- package/src/app/core/plantilla-general/plantilla-general.template.scss +0 -37
- package/src/app/core/plantilla-general/plantilla-general.template.ts +0 -233
- package/src/app/core/servicios/auth.service.ts +0 -189
- package/src/app/core/servicios/cargar-control-funcionalidad.service.ts +0 -49
- package/src/app/core/servicios/data-exporter-table.utils.ts +0 -78
- package/src/app/core/servicios/error-interceptor.service.ts +0 -208
- package/src/app/core/servicios/guardias/auth.guard.ts +0 -51
- package/src/app/core/servicios/guardias/publico.guard.ts +0 -26
- package/src/app/core/servicios/interceptores/loading-interceptor.ts +0 -37
- package/src/app/core/servicios/interceptores/token-interceptor.service.ts +0 -177
- package/src/app/core/servicios/loading.service.ts +0 -48
- package/src/app/core/servicios/menu.service.ts +0 -153
- package/src/app/core/servicios/spinner-service.ts +0 -18
- package/src/app/core/servicios/storage.service.ts +0 -68
- package/src/app/core/servicios/template.service.ts +0 -91
- package/src/app/core/servicios/toast.service.ts +0 -114
- package/src/app/core/servicios/utils.service.ts +0 -362
- package/src/app/core/sharedlib.module.ts +0 -11
- package/src/app/core/utilidades/color.util.ts +0 -197
- package/src/app/layout/app.breadcrumb.component.html +0 -20
- package/src/app/layout/app.breadcrumb.component.ts +0 -78
- package/src/app/layout/app.footer.component.html +0 -18
- package/src/app/layout/app.footer.component.ts +0 -15
- package/src/app/layout/app.layout.component.html +0 -20
- package/src/app/layout/app.layout.component.ts +0 -201
- package/src/app/layout/app.layout.module.ts +0 -9
- package/src/app/layout/app.menu.component.html +0 -6
- package/src/app/layout/app.menu.component.ts +0 -51
- package/src/app/layout/app.menu.service.ts +0 -23
- package/src/app/layout/app.menuitem.component.ts +0 -252
- package/src/app/layout/app.menuprofile.component.html +0 -35
- package/src/app/layout/app.menuprofile.component.ts +0 -60
- package/src/app/layout/app.rightmenu.component.html +0 -72
- package/src/app/layout/app.rightmenu.component.ts +0 -24
- package/src/app/layout/app.sidebar.component.html +0 -40
- package/src/app/layout/app.sidebar.component.ts +0 -81
- package/src/app/layout/app.topbar.component.html +0 -214
- package/src/app/layout/app.topbar.component.ts +0 -335
- package/src/app/layout/config/app.config.component.html +0 -125
- package/src/app/layout/config/app.config.component.ts +0 -206
- package/src/app/layout/config/app.config.module.ts +0 -11
- package/src/app/layout/service/app.layout.service.ts +0 -191
- package/src/app/publico/pages/login/login.page.html +0 -53
- package/src/app/publico/pages/login/login.page.scss +0 -166
- package/src/app/publico/pages/login/login.page.ts +0 -128
- package/src/app/publico/pages/not-found/not-found.page.html +0 -35
- package/src/app/publico/pages/not-found/not-found.page.scss +0 -2
- package/src/app/publico/pages/not-found/not-found.page.ts +0 -46
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.html +0 -58
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.scss +0 -49
- package/src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts +0 -176
- package/src/app/publico/pages/timeout/timeout.page.html +0 -24
- package/src/app/publico/pages/timeout/timeout.page.scss +0 -2
- package/src/app/publico/pages/timeout/timeout.page.ts +0 -18
- package/src/app/seguridad/constantes/ConstantesGenerales.ts +0 -30
- package/src/app/seguridad/constantes/ReporteEntradaConstantes.ts +0 -18
- package/src/app/seguridad/constantes/ReporteFuenteConstantes.ts +0 -13
- package/src/app/seguridad/modelos/AplicacionModel.ts +0 -11
- package/src/app/seguridad/modelos/ArchivoPortalModel.ts +0 -16
- package/src/app/seguridad/modelos/AtributoPuntoModel.ts +0 -9
- package/src/app/seguridad/modelos/AtributoSSOportalModel.ts +0 -22
- package/src/app/seguridad/modelos/CargueLineaModel.ts +0 -17
- package/src/app/seguridad/modelos/ColoresRGB.ts +0 -17
- package/src/app/seguridad/modelos/ColumnaFuenteModel.ts +0 -9
- package/src/app/seguridad/modelos/ComplementoModel.ts +0 -10
- package/src/app/seguridad/modelos/ComponentePaginaModel.ts +0 -22
- package/src/app/seguridad/modelos/ConexionModel.ts +0 -15
- package/src/app/seguridad/modelos/ControlFuncionModel.ts +0 -10
- package/src/app/seguridad/modelos/CorreoModel.ts +0 -45
- package/src/app/seguridad/modelos/CorreoWSModel.ts +0 -49
- package/src/app/seguridad/modelos/CruceRecursoPuntoModel.ts +0 -14
- package/src/app/seguridad/modelos/EmpresaModel.ts +0 -25
- package/src/app/seguridad/modelos/EmpresaSeguridadModel.ts +0 -19
- package/src/app/seguridad/modelos/EtiquetaModel.ts +0 -4
- package/src/app/seguridad/modelos/Etiquetas.ts +0 -14
- package/src/app/seguridad/modelos/FuenteCampoAtributoModel.ts +0 -21
- package/src/app/seguridad/modelos/FuenteDato.ts +0 -19
- package/src/app/seguridad/modelos/FuenteEntradaModel.ts +0 -9
- package/src/app/seguridad/modelos/FuenteLineaServicioModel.ts +0 -19
- package/src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts +0 -14
- package/src/app/seguridad/modelos/FuncionalidadModel.ts +0 -12
- package/src/app/seguridad/modelos/GeneralModel.ts +0 -16
- package/src/app/seguridad/modelos/GrupoControlFuncionModel.ts +0 -12
- package/src/app/seguridad/modelos/GrupoFuenteModel.ts +0 -17
- package/src/app/seguridad/modelos/GrupoPermisoModel.ts +0 -16
- package/src/app/seguridad/modelos/ListaServicioModel.ts +0 -18
- package/src/app/seguridad/modelos/LlaveForaneaModel.ts +0 -6
- package/src/app/seguridad/modelos/LoginModel.ts +0 -19
- package/src/app/seguridad/modelos/MensajeSistemaModel.ts +0 -10
- package/src/app/seguridad/modelos/ModulosModel.ts +0 -17
- package/src/app/seguridad/modelos/PaginaPortalModel.ts +0 -23
- package/src/app/seguridad/modelos/ParametroComponenteModel.ts +0 -9
- package/src/app/seguridad/modelos/ParametrosGeneralModel.ts +0 -16
- package/src/app/seguridad/modelos/PermisoFuncionModel.ts +0 -11
- package/src/app/seguridad/modelos/PermisocontenidoModel.ts +0 -20
- package/src/app/seguridad/modelos/PreguntaSeguridadModel.ts +0 -9
- package/src/app/seguridad/modelos/PropiedadModel.ts +0 -12
- package/src/app/seguridad/modelos/PublicacionWebModel.ts +0 -29
- package/src/app/seguridad/modelos/PuntoProcesoModel.ts +0 -7
- package/src/app/seguridad/modelos/RecursoPunto.ts +0 -13
- package/src/app/seguridad/modelos/RecursoPuntoModel.ts +0 -13
- package/src/app/seguridad/modelos/ReporteBanda.ts +0 -9
- package/src/app/seguridad/modelos/ReporteColumna.ts +0 -33
- package/src/app/seguridad/modelos/ReporteColumnario.ts +0 -82
- package/src/app/seguridad/modelos/ReporteColumnarioMarcador.ts +0 -31
- package/src/app/seguridad/modelos/ReporteMarcador.ts +0 -40
- package/src/app/seguridad/modelos/ReporteSoporte.ts +0 -10
- package/src/app/seguridad/modelos/ReporteTabla.ts +0 -14
- package/src/app/seguridad/modelos/RespuestaModel.ts +0 -10
- package/src/app/seguridad/modelos/ServidorCorreoModel.ts +0 -31
- package/src/app/seguridad/modelos/SistemaMensajeModel.ts +0 -11
- package/src/app/seguridad/modelos/SitioPortalModel.ts +0 -29
- package/src/app/seguridad/modelos/TablaFromModel.ts +0 -5
- package/src/app/seguridad/modelos/TareasModel.ts +0 -54
- package/src/app/seguridad/modelos/TextoModel.ts +0 -11
- package/src/app/seguridad/modelos/TipoEtiqueta.ts +0 -8
- package/src/app/seguridad/modelos/UnionModel.ts +0 -14
- package/src/app/seguridad/modelos/UsuariogrupoModel.ts +0 -27
- package/src/app/seguridad/modelos/aplicacion-propiedad-model.ts +0 -16
- package/src/app/seguridad/modelos/contenidoCorreoModel.ts +0 -13
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html +0 -47
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.scss +0 -8
- package/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts +0 -144
- package/src/app/shared/servicios/cargar-archivos.service.ts +0 -51
- package/src/app/shared/servicios/cargar-mapas.service.ts +0 -43
- package/src/app/shared/servicios/encriptado-basico.service.ts +0 -54
- package/src/app/shared/servicios/encriptador-simetrico.service.ts +0 -29
- package/src/app/shared/servicios/general.service.ts +0 -124
- package/src/app/shared/servicios/parametros-navegacion.service.ts +0 -20
- package/src/app/shared/servicios/plantillas.service.ts +0 -22
- package/src/app/shared/servicios/tarea.service.ts +0 -71
- package/src/app/shared/utilidades/translate-loader.util.ts +0 -44
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html +0 -167
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.scss +0 -11
- package/src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts +0 -425
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html +0 -87
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts +0 -189
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html +0 -117
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts +0 -87
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html +0 -158
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.scss +0 -6
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts +0 -345
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html +0 -131
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts +0 -198
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html +0 -206
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.scss +0 -3
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts +0 -329
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html +0 -2114
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.scss +0 -241
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts +0 -1677
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html +0 -33
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts +0 -96
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html +0 -54
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.scss +0 -0
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts +0 -111
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html +0 -394
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.scss +0 -10
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts +0 -599
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html +0 -130
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.scss +0 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts +0 -172
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html +0 -376
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.scss +0 -5
- package/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts +0 -749
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html +0 -145
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts +0 -302
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html +0 -19
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts +0 -89
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html +0 -714
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.scss +0 -0
- package/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts +0 -688
- package/src/app/webcommon/pipes/dashboard.pipe.ts +0 -79
- package/src/app/webcommon/pipes/fuente.pipe.ts +0 -207
- package/src/app/webcommon/pipes/general.pipe.ts +0 -1043
- package/src/app/webcommon/pipes/reporte-columnario.pipe.ts +0 -101
- package/src/app/webcommon/pipes/reporte-fuente.pipe.ts +0 -306
- package/src/app/webcommon/pipes/sara-general.pipe.ts +0 -289
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html +0 -90
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.scss +0 -0
- package/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts +0 -262
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html +0 -50
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.scss +0 -0
- package/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts +0 -135
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html +0 -41
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.scss +0 -0
- package/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts +0 -283
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.html +0 -179
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.scss +0 -3
- package/src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts +0 -266
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.html +0 -261
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.scss +0 -13
- package/src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts +0 -519
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html +0 -10
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.scss +0 -5
- package/src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts +0 -58
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html +0 -71
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.scss +0 -0
- package/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts +0 -151
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html +0 -11
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.scss +0 -0
- package/src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts +0 -82
- package/src/app/webcommon/services/carguelinea.service.ts +0 -72
- package/src/app/webcommon/services/dashboard.service.ts +0 -258
- package/src/app/webcommon/services/ejecucionreporte.service.ts +0 -160
- package/src/app/webcommon/services/fechaUtils.service.ts +0 -117
- package/src/app/webcommon/services/fuentegeneral.service.ts +0 -74
- package/src/app/webcommon/services/homologacion.service.ts +0 -49
- package/src/app/webcommon/services/plantillas.service.ts +0 -165
- package/src/app/webcommon/services/reportes.service.ts +0 -133
- package/src/app/webcommon/webcommon.module.ts +0 -11
- package/src/environments/environment.prod.ts +0 -3
- package/src/environments/environment.ts +0 -25
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -14
- package/src/main.ts +0 -12
- package/src/polyfills.ts +0 -53
- package/src/test.ts +0 -14
- package/tsconfig.app.json +0 -15
- package/tsconfig.json +0 -35
- package/tsconfig.spec.json +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general-library-union.mjs","sources":["../../src/app/seguridad/modelos/UnionModel.ts","../../src/app/seguridad/modelos/aplicacion-propiedad-model.ts","../../src/app/seguridad/modelos/AplicacionModel.ts","../../src/app/seguridad/modelos/ArchivoPortalModel.ts","../../src/app/seguridad/modelos/AtributoPuntoModel.ts","../../src/app/seguridad/modelos/AtributoSSOportalModel.ts","../../src/app/seguridad/modelos/AuditoriaArchivoModel.ts","../../src/app/seguridad/modelos/CargueLineaModel.ts","../../src/app/seguridad/modelos/ColoresRGB.ts","../../src/app/seguridad/modelos/ComplementoModel.ts","../../src/app/seguridad/modelos/ComponentePaginaModel.ts","../../src/app/seguridad/modelos/ConexionModel.ts","../../src/app/seguridad/modelos/contenidoCorreoModel.ts","../../src/app/seguridad/modelos/ContenidoHtmlPortalModel.ts","../../src/app/seguridad/modelos/ControlFuncionModel.ts","../../src/app/seguridad/modelos/CorreoModel.ts","../../src/app/seguridad/modelos/CorreoWSModel.ts","../../src/app/seguridad/modelos/CruceRecursoPuntoModel.ts","../../src/app/seguridad/modelos/DatoInicioModel.ts","../../src/app/seguridad/modelos/EjecucionReporteDataModel.ts","../../src/app/seguridad/modelos/EmpresaModel.ts","../../src/app/seguridad/modelos/EmpresaSeguridadModel.ts","../../src/app/seguridad/modelos/EntradaComplementoModel.ts","../../src/app/seguridad/modelos/EtiquetaModel.ts","../../src/app/seguridad/modelos/Etiquetas.ts","../../src/app/seguridad/modelos/FuenteCampoAtributoModel.ts","../../src/app/seguridad/modelos/FuenteCampoModel.ts","../../src/app/seguridad/modelos/FuenteDato.ts","../../src/app/seguridad/modelos/FuenteEntradaModel.ts","../../src/app/seguridad/modelos/FuenteGeneralModel.ts","../../src/app/seguridad/modelos/FuenteLineaServicioModel.ts","../../src/app/seguridad/modelos/FuenteProcesoGeneralModel.ts","../../src/app/seguridad/modelos/FuenteServicioModel.ts","../../src/app/seguridad/modelos/FuncionalidadModel.ts","../../src/app/seguridad/modelos/GeneralModel.ts","../../src/app/seguridad/modelos/GrupoAccesoModel.ts","../../src/app/seguridad/modelos/GrupoControlFuncionModel.ts","../../src/app/seguridad/modelos/GrupoFuenteModel.ts","../../src/app/seguridad/modelos/GrupoPermisoModel.ts","../../src/app/seguridad/modelos/ListaServicioModel.ts","../../src/app/seguridad/modelos/LoginModel.ts","../../src/app/seguridad/modelos/MensajeSistemaModel.ts","../../src/app/seguridad/modelos/MenuPortalModel.ts","../../src/app/seguridad/modelos/ModulosModel.ts","../../src/app/seguridad/modelos/PaginaPortalModel.ts","../../src/app/seguridad/modelos/ParametroComponenteModel.ts","../../src/app/seguridad/modelos/ParametrosGeneralModel.ts","../../src/app/seguridad/modelos/PermisocontenidoModel.ts","../../src/app/seguridad/modelos/PermisoFuncionModel.ts","../../src/app/seguridad/modelos/PeticionModel.ts","../../src/app/seguridad/modelos/PreguntaSeguridadModel.ts","../../src/app/seguridad/modelos/PropiedadModel.ts","../../src/app/seguridad/modelos/PublicacionWebModel.ts","../../src/app/seguridad/modelos/PuntoProcesoModel.ts","../../src/app/seguridad/modelos/RecursoPunto.ts","../../src/app/seguridad/modelos/ReporteBanda.ts","../../src/app/seguridad/modelos/ReporteColumna.ts","../../src/app/seguridad/modelos/ReporteColumnario.ts","../../src/app/seguridad/modelos/ReporteColumnarioMarcador.ts","../../src/app/seguridad/modelos/ReporteEntradaModel.ts","../../src/app/seguridad/modelos/ReporteFuenteModel.ts","../../src/app/seguridad/modelos/ReporteMarcador.ts","../../src/app/seguridad/modelos/ReporteSoporte.ts","../../src/app/seguridad/modelos/ReporteTabla.ts","../../src/app/seguridad/modelos/RespuestaModel.ts","../../src/app/seguridad/modelos/RolModel.ts","../../src/app/seguridad/modelos/ServidorCorreoModel.ts","../../src/app/seguridad/modelos/SistemaMensajeModel.ts","../../src/app/seguridad/modelos/SitioPortalModel.ts","../../src/app/seguridad/modelos/TareasModel.ts","../../src/app/seguridad/modelos/TextoModel.ts","../../src/app/seguridad/modelos/TipoEtiqueta.ts","../../src/app/seguridad/modelos/UsuariogrupoModel.ts","../../src/app/seguridad/modelos/UsuarioModel.ts","../../src/environments/environment.ts","../../src/app/core/modelos/user.model.ts","../../src/app/core/errores/authentication.error.ts","../../src/app/core/servicios/utils.service.ts","../../src/app/core/servicios/storage.service.ts","../../src/app/core/servicios/cargar-control-funcionalidad.service.ts","../../src/app/core/servicios/auth.service.ts","../../src/app/core/servicios/menu.service.ts","../../src/app/core/servicios/error-interceptor.service.ts","../../src/app/core/servicios/template.service.ts","../../src/app/core/servicios/toast.service.ts","../../src/app/core/servicios/loading.service.ts","../../src/app/layout/service/app.layout.service.ts","../../src/app/layout/app.menuprofile.component.ts","../../src/app/layout/app.menuprofile.component.html","../../src/app/layout/app.menu.service.ts","../../src/app/layout/app.menuitem.component.ts","../../src/app/layout/app.menu.component.ts","../../src/app/layout/app.menu.component.html","../../src/app/webcommon/pipes/general.pipe.ts","../../src/app/layout/app.sidebar.component.ts","../../src/app/layout/app.sidebar.component.html","../../src/app/layout/app.topbar.component.ts","../../src/app/layout/app.topbar.component.html","../../src/app/layout/app.footer.component.ts","../../src/app/layout/app.footer.component.html","../../src/app/layout/app.rightmenu.component.ts","../../src/app/layout/app.rightmenu.component.html","../../src/app/layout/app.breadcrumb.component.ts","../../src/app/layout/app.breadcrumb.component.html","../../src/app/core/plantilla-general/plantilla-general.template.ts","../../src/app/core/plantilla-general/plantilla-general.template.html","../../src/app/core/core.module.ts","../../src/app/core/sharedlib.module.ts","../../src/app/layout/app.layout.module.ts","../../src/app/layout/app.layout.component.ts","../../src/app/layout/app.layout.component.html","../../src/app/core/componentes/breadcrumb/breadcrumb.component.ts","../../src/app/core/componentes/breadcrumb/breadcrumb.component.html","../../src/app/core/componentes/footer/footer.component.ts","../../src/app/core/componentes/footer/footer.component.html","../../src/app/core/componentes/menu/menu.component.ts","../../src/app/core/componentes/menu/menu.component.html","../../src/app/core/servicios/guardias/auth.guard.ts","../../src/app/core/servicios/guardias/publico.guard.ts","../../src/app/core/servicios/interceptores/token-interceptor.service.ts","../../src/app/core/utilidades/color.util.ts","../../src/app/core/componentes/inicio-component/inicio-component.component.ts","../../src/app/core/componentes/inicio-component/inicio-component.component.html","../../src/app/publico/pages/seleccion-rol/seleccion-rol.component.ts","../../src/app/publico/pages/seleccion-rol/seleccion-rol.component.html","../../src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.ts","../../src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component.html","../../src/app/publico/pages/login/login.page.ts","../../src/app/publico/pages/login/login.page.html","../../src/app/publico/pages/not-found/not-found.page.ts","../../src/app/publico/pages/not-found/not-found.page.html","../../src/app/publico/pages/timeout/timeout.page.ts","../../src/app/publico/pages/timeout/timeout.page.html","../../src/app/core/componentes/filtro-general/filtro-general.component.ts","../../src/app/core/componentes/filtro-general/filtro-general.component.html","../../src/app/core/componentes/tabla-general/tabla-general.component.ts","../../src/app/core/componentes/tabla-general/tabla-general.component.html","../../src/app/webcommon/webcommon.module.ts","../../src/app/shared/servicios/general.service.ts","../../src/app/shared/servicios/cargar-mapas.service.ts","../../src/app/shared/servicios/parametros-navegacion.service.ts","../../src/app/webcommon/services/fuentegeneral.service.ts","../../src/app/shared/servicios/encriptado-basico.service.ts","../../src/app/webcommon/services/carguelinea.service.ts","../../src/app/webcommon/services/ejecucionreporte.service.ts","../../src/app/webcommon/services/fechaUtils.service.ts","../../src/app/webcommon/services/homologacion.service.ts","../../src/app/webcommon/services/reportes.service.ts","../../src/app/webcommon/pipes/fuente.pipe.ts","../../src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.ts","../../src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.html","../../src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.ts","../../src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page.html","../../src/app/seguridad/modelos/RecursoPuntoModel.ts","../../src/app/webcommon/popups/popup-recurso/popup-recurso.component.ts","../../src/app/webcommon/popups/popup-recurso/popup-recurso.component.html","../../src/app/webcommon/services/plantillas.service.ts","../../src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.ts","../../src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.html","../../src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.ts","../../src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.html","../../src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.ts","../../src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.html","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective.ts","../../src/app/core/componentes/formulariodinamico/objetosformulario/Cambio.ts","../../src/app/core/componentes/formulariodinamico/formulariodinamico.component.ts","../../src/app/core/componentes/formulariodinamico/formulariodinamico.component.html","../../src/app/core/servicios/data-exporter-table.utils.ts","../../src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.ts","../../src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.html","../../src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.ts","../../src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.html","../../src/app/webcommon/pipes/reporte-fuente.pipe.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.html","../../src/app/webcommon/pipes/reporte-columnario.pipe.ts","../../src/app/shared/servicios/cargar-archivos.service.ts","../../src/app/webcommon/pipes/dashboard.pipe.ts","../../src/app/webcommon/services/dashboard.service.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.html","../../src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.ts","../../src/app/webcommon/popups/popup-sentencia/popup-sentencia.component.html","../../src/app/webcommon/popups/popup-reporte/popup-reporte.component.ts","../../src/app/webcommon/popups/popup-reporte/popup-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.html","../../src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.ts","../../src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page.html","../../src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.ts","../../src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page.html","../../src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.ts","../../src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.html","../../src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo.ts","../../src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.ts","../../src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.html","../../src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.ts","../../src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component.html","../../src/app/seguridad/modelos/ColumnaFuenteModel.ts","../../src/app/seguridad/modelos/TablaFromModel.ts","../../src/app/seguridad/modelos/JoinFromModel.ts","../../src/app/seguridad/modelos/ForeingWraperModel.ts","../../src/app/seguridad/modelos/ColumnaWraperModel.ts","../../src/app/seguridad/constantes/ConstantesGenerales.ts","../../src/app/seguridad/modelos/ObjetoReporteModel.ts","../../src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.ts","../../src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.html","../../src/app/seguridad/constantes/ReporteEntradaConstantes.ts","../../src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.ts","../../src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.html","../../src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.ts","../../src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.html","../../src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.ts","../../src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component.html","../../src/app/core/servicios/spinner-service.ts","../../src/app/core/servicios/interceptores/loading-interceptor.ts","../../public-api.ts","../../general-library-union.ts"],"sourcesContent":["\r\nexport class UnionModel {\r\n\r\n paginacionRegistroInicial : number;\r\n\tpaginacionRegistroFinal : number;\r\n\tfechaAdicionado : Date;\r\n\tfechaModificado: Date;\r\n\tadicionado: string;\r\n\tcontrolSeguimiento: string;\r\n\tllaveTabla: string;\r\n\tmodificado: string;\r\n\tcheck: boolean;\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class AplicacionPropiedadModel extends UnionModel {\r\n aplicacion: string;\r\n propiedad: string;\r\n nombrePropiedad: string;\r\n descripcionPropiedad: string;\r\n valor: string;\r\n tipo: string;\r\n listahijos: AplicacionPropiedadModel[];\r\n padre: boolean;\r\n expandido: boolean;\r\n\r\n //NO PERSISTENTES\r\n mostrarEditar: boolean;\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\nexport class AplicacionModel extends UnionModel{\r\n\r\n codigo: string ;\r\n descripcion:string ;\r\n keyBase: string;\r\n\t estado: string ;\r\n\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ArchivoPortalModel extends UnionModel{\r\n\r\n descripcion: string;\r\n\tnombreOriginal: string;\r\n\textension: string;\r\n\tcarpetaPortal: string;\r\n\trutaFisica: string;\r\n\turl: string;\r\n\ttipoPadre: string;\r\n\tllavePadre: string;\r\n\r\n\turlLocal: string;\r\n\tbusqueda: string;\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class AtributoPuntoModel extends UnionModel {\r\n\tllave: string;\r\n\tpuntoProceso: string;\r\n\tdescripcion: string;\r\n\tatributo: string;\r\n\tcodigo: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\nexport class AtributossoMdel extends UnionModel{\r\n\r\n aplicacion:string;\r\n\t identificador:string;\r\n\t serviceProvider:string;\r\n\t identityProvider:string;\r\n\t endpoint:string;\r\n\t autenticacionSP:string;\r\n\t metadataSP:string;\r\n\t requestSP:string;\r\n\t relayState:string;\r\n\t certificado:string;\r\n\t formatoNombre:string;\r\n\t firmaPeticion:string;\r\n\t firmaAsercion:string;\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class AuditoriaArchivoModel extends UnionModel{\r\n\r\n usuario: String;\r\n actividad: Date;\r\n archivo: String;\r\n tipo: String;\r\n descripcion: String;\r\n tema: String;\r\n ip: String;\r\n\r\n}","import { UnionModel } from './UnionModel';\r\n\r\nexport class CargueLineaModel extends UnionModel {\r\n\r\n\tproceso: string;\r\n\tnumero: number;\r\n\tlinea: string;\r\n\tmensaje: string;\r\n\r\n\tfuente: string;\r\n\testado: boolean;\r\n\taplicacion: Date;\r\n\t\r\n\tfechaInicial: Date;\r\n\tfechaFinal: Date;\r\n\r\n}","export class coloresRGB{\r\n RCOL1: string;\r\n GCOL1: string;\r\n BCOL1: string;\r\n RCOL2: string;\r\n GCOL2: string;\r\n BCOL2: string;\r\n RCOL3: string;\r\n GCOL3: string;\r\n BCOL3: string;\r\n RCOL4: string;\r\n GCOL4: string;\r\n BCOL4: string;\r\n RCOL5: string;\r\n GCOL5: string;\r\n BCOL5: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ComplementoModel extends UnionModel{\r\n\r\n descripcion:string;\r\n pagina:string;\r\n tipo:string;\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\nexport class ComponentePagina extends UnionModel {\r\n paginaPortal: string;\r\n\tarea: string;\r\n\ttipo: string;\r\n\tcontenido: string;\r\n\tcomplemento: string;\r\n\tforma: string;\r\n\tvisible: string;\r\n\tcontenidoNiega: string;\r\n orden: number;\r\n\tid: string;\r\n\testilo: string;\r\n\ttitulo: string;\r\n\tcodigoPagina: string;\r\n\tnombrePagina: string;\r\n\tnombreComplemento: string;\r\n\tnombreContenido: string;\r\n textoTotal: string;\r\n\r\n}\r\n\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ConexionModel extends UnionModel{\r\n llave:string;\r\n codigo:string;\r\n descripcion:string;\r\n usuario:string;\r\n conexionUrl:string;\r\n seleccion:string;\r\n auditoria:string;\r\n llaveGrupoAcceso:string;\r\n conexionSeguridad:string;\r\n carpeta:string;\r\n \r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ContenidoCorreoModel extends UnionModel {\r\n\r\n correo: string;\r\n orden: number;\r\n contenido: string;\r\n tipo: string;\r\n anexoDescripcion: string;\r\n anexo: string;\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ContenidoHtmlPortalModel extends UnionModel {\r\n\r\n id: string;\r\n private: string;\r\n descripcion: string;\r\n permiso: string;\r\n texto1: string;\r\n texto2: string;\r\n texto3: string;\r\n texto4: string;\r\n texto5: string;\r\n texto6: string;\r\n subContenidos: string;\r\n contexto: string;\r\n filtro: string;\r\n rol: string;\r\n empresa: string;\r\n controlAcceso: string;\r\n alternoID: string;\r\n\r\n\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ControlFuncionModel extends UnionModel{\r\n\r\n llave: String ;\r\n\tcodigo: String;\r\n\tfuncionalidad: String;\r\n\tdescripcion: String;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class CorreoModel extends UnionModel{\r\n llave:string;\r\n usuario:string;\r\n destinatario:string;\r\n copia:string;\r\n asunto:string;\r\n estado:string;\r\n fechaEnvio:Date;\r\n proximoEnvio:Date;\r\n intentos:number;\r\n anexo:string;\r\n llaveServidor:string;\r\n copiaOculta:string;\r\n nombreCC:string;\r\n nombreBCC:string;\r\n maximoIntento:number;\r\n hallazgo:string;\r\n julianoBase:string;\r\n empresa:string;\r\n grupo:string;\r\n\r\n //Nombre que el usuario final visualizara al ver el nombre del archivo del anexo\r\n nombreDestino:string;\r\n mensaje:string;\r\n llaveInstancia:string;\r\n tipoBusqueda:string;\r\n\r\n //Indica si el contenido del correo esta en base de datos o en archivo html\r\n contenidoBD:string;\r\n\r\n //Filtro Fecha\r\n proximoEnvioInicial:Date;\r\n proximoEnvioFinal:Date;\r\n fechaEnvioInicial:Date;\r\n fechaEnvioFinal:Date;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class CorreoWSModel extends UnionModel{\r\n llave:string;\r\n usuario:string;\r\n destinatario:string;\r\n copia:string;\r\n asunto:string;\r\n estado:string;\r\n fechaEnvio:Date;\r\n proximoEnvio:Date;\r\n intentos:number;\r\n anexo:string;\r\n llaveServidor:String;\r\n copiaOculta:string;\r\n nombreCC:string;\r\n nombreBCC:string;\r\n maximoIntento:number;\r\n hallazgo:string;\r\n julianoBase:string;\r\n empresa:string;\r\n grupo:string;\r\n\r\n //Nombre que el usuario final visualizara al ver el nombre del archivo del anexo\r\n nombreDestino:string;\r\n mensaje:string;\r\n llaveInstancia:string;\r\n tipoBusqueda:string;\r\n\r\n //Indica si el contenido del correo esta en base de datos o en archivo html\r\n contenidoBD:string;\r\n plantilla:string;\r\n\r\n //Campos nuevos\r\n archivoAdjunto:string;\r\n autoEnvio:boolean;\r\n llaveEmpresa:string;\r\n citacionCorreo:string;\r\n llaveRol:string;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class CruceRecursoPuntoModel extends UnionModel {\r\n\tllave: string;\r\n\treporteEntrada: string;\r\n\tatributoPunto: string;\r\n\tfuenteEntrada: string;\r\n\tatributoPuntoDescripcion: string;\r\n\tdescripcionEntrada: string;\r\n\tatributoPuntoValor: string;\r\n\tpuntoProceso: string;\r\n\treporteFuente: string;\r\n\trecursoPunto: string;\r\n}","import { coloresRGB } from \"./ColoresRGB\";\r\n\r\nexport class DatoInicioDTO{\r\n colores: string;\r\n etiquetas: string;\r\n coloresRGB: coloresRGB;\r\n}","import { FuenteDatoModel } from \"./FuenteDato\";\r\nimport { RecursoPuntoModel } from \"./RecursoPuntoModel\";\r\nimport { ReporteColumnaModel } from \"./ReporteColumna\";\r\nimport { ReporteEntradaModel } from \"./ReporteEntradaModel\";\r\nimport { ReporteFuenteModel } from \"./ReporteFuenteModel\";\r\nimport { ReporteMarcadorModel } from \"./ReporteMarcador\";\r\nimport { ReporteSoporteModel } from \"./ReporteSoporte\";\r\n\r\nexport class EjecucionReporteDataModel{\r\n reporte: ReporteFuenteModel;\r\n listaEntrada: ReporteEntradaModel[];\r\n listaMarcador: ReporteMarcadorModel[];\r\n listaColumna: ReporteColumnaModel[];\r\n listaDinamico: ReporteMarcadorModel[];\r\n listaRecursoPunto: RecursoPuntoModel[];\r\n listaFuentes: FuenteDatoModel[];\r\n listaFuentesLista: FuenteDatoModel[];\r\n listaSoporte: ReporteSoporteModel[];\r\n listaMarcadorExcel: ReporteMarcadorModel[];\r\n modificarReporte?: boolean;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class EmpresaModel extends UnionModel{\r\ncodigo:string;\r\nnombre:string;\r\norganizacion:string;\r\nactivo:string;\r\nnombreModificado:string;\r\nnit:string;\r\ntipoIdRepresentanteLegal:string;\r\nidRepresentanteLegal:string;\r\nrepresentanteLegal:string;\r\npais:string;\r\nciudad:string;\r\ncodigoPostal:string;\r\ndireccion:string;\r\ntelefono1:string;\r\ntelefono2:string;\r\nactivado:Date;\r\nfiltro:string;\r\ncodMoneda:string;\r\n/* campos no persistentes */\r\nnombreOrganizacion:string;\r\nnombreMoneda:string;\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class EmpresaSeguridadModel extends UnionModel {\r\n\tempresa: number;\r\n\tnombre: string;\r\n\testilo: string;\r\n\tdominio: string;\r\n\turlLogoSitio: string\r\n\ttipoEtiqueta: string\r\n\tllave: string;\r\n\tllaveGrupoAcceso: string;\r\n\tllaveSitio: string;\r\n\tcodigoSiti: string;\r\n\tnit: number;\r\n\tpropiedadMonitoreo: string;\r\n\tllavePlanCorporativo: string;\r\n\ttipoPeriodoPlan: string;\r\n\tfechaCortePlan: Date;\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class EntradaComplementoModel extends UnionModel {\r\n\r\n codigo: String;\r\n descripcion: String;\r\n complemento: String;\r\n\r\n}","export class EtiquetaDTO{\r\n etiqueta: string;\r\n label: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\nexport class EtiquetasModel extends UnionModel{\r\n \r\n tipoEtiqueta:String;\r\n etiqueta:String;\r\n label:String;\r\n busqueda:String;\r\n aplicativo:String;\r\n nombreAplicativo:String;\r\n\r\n\r\n //DATOS NO PERSISTENTES\r\n mostrarEditar: boolean;\r\n}","import { UnionModel } from \"../../seguridad/modelos/UnionModel\";\r\n\r\n\r\nexport class FuenteCampoAtributoModel extends UnionModel{\r\n \r\n public fuenteLineaServicio: string;//linea o servicio del cual depende\r\n\tpublic campoAtributo: string;//atributo o campo al que esta asociado\r\n\tpublic tipoDato: string;// tipo de dato en el que se encuentra el campo o atributo\r\n\tpublic numero: number;// valor numerico del atributo\r\n\tpublic cadena: string;//valor texto del atributo\r\n\tpublic formato: string;//valor texto del atributo\r\n\tpublic fecha: Date; //valor tipo fecha del atributo\r\n\t\r\n\t/**\r\n\t * Se utiliza para conocer la entrada de la fuente relacionada \r\n\t * en los cargue fuente de BD\r\n\t */\r\n\tpublic fuenteEntrada;\r\n\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\n\r\nexport class FuenteCampoModel extends UnionModel {\r\n \r\n fuente: String;\r\n descripcion: String;\r\n tipoDato: String;\r\n tipoInformacion: String;\r\n columna: Number;\r\n posicionInicial: Number;\r\n posicionFinal: Number;\r\n formato: String;\r\n homologacion: String;\r\n homologacionNombre: String;\r\n llaveDiferente: String;\r\n origen: String;\r\n obligatorio: String;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class FuenteDatoModel extends UnionModel {\r\n llave: string;\r\n descripcion: string;\r\n fromSql: string;\r\n whereJoin: string;\r\n whereAdicional: string;\r\n groupby: string;\r\n query: string;\r\n query2: string;\r\n origen: string;\r\n parametro: string;\r\n whereJoinValor: string;\r\n tipoDato: string;\r\n rol: string;\r\n login: string;\r\n empresa: number;\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class FuenteEntradaModel extends UnionModel {\r\n\tfuente: string;\r\n\tdescripcion: string;\r\n\ttipoDato: string;\r\n\tobligatorio: string;\r\n\tvalorDefecto: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\n\r\nexport class FuenteGeneralModel extends UnionModel{\r\n \r\n descripcion: string;\r\n tipo: string;\r\n aplicacion: string;\r\n plantilla: string;\r\n\r\n numeroFila: number;\r\n tipoInfoColumna: number;\r\n tipoInfoInicial: number;\r\n tipoInfoFinal: number;\r\n grupoColumna: number;\r\n grupoInicial: number;\r\n grupoFinal: number;\r\n\r\n datoRompe: string;\r\n separador: string;\r\n ejecucion: string;\r\n hoja: string;\r\n excel: string;\r\n\r\n proceso: string;\r\n\r\n origen: string;\r\n estado: string;\r\n valido: string;\r\n formulaDescripcion: string;\r\n tipoModelo: string;\r\n modoParametro: string;\r\n fuenteGeneral: string;\r\n\r\n\r\n login: string;\r\n rol: string;\r\n puntoProceso: string;\r\n filtroLoginRol: string;\r\n solicitaDetalle: string;\r\n guardarCargue: string;\r\n validadorLinea: string;\r\n motor: string;\r\n codigo: string;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}","import { UnionModel } from '../../seguridad/modelos/UnionModel'\r\nimport { FuenteCampoAtributoModel } from '../../seguridad/modelos/FuenteCampoAtributoModel';\r\n\r\nexport class FuenteLineaServicioModel extends UnionModel {\r\n\r\n\tpublic grupo: string; // grupo al que pertenece la linea o servicio\r\n\tpublic linea: string; // cadena de la linea completa\r\n\tpublic numeroLinea: number; // numero de linea que se identifico\r\n\tpublic fuenteProceso: string;// llave de la fuente proceso al que esta asociado\r\n\tpublic mensaje: string;// errores asociados al servicio o a la linea\r\n\tpublic tipoInformacion: string;// tipo de informacion de la linea o servicio\r\n\tpublic tipo: string;// tipo: grupo/G linea/L servicio/S\r\n\tpublic servicio: string; // codigo del servicio que se usara\r\n\tpublic orden: number; // de ejecucion\r\n\tpublic depende: string;\r\n\tpublic detenerServicioFallido: boolean;\r\n\tpublic camposAtributos: FuenteCampoAtributoModel[]=[];\r\n\t\r\n}","import { UnionModel } from './UnionModel';\r\n\r\nexport class FuenteProcesoGeneralModel extends UnionModel {\r\n\r\n\tfechaProceso: Date;\r\n\tfuente: string;\r\n\tusuario: string;\r\n\testado: string;\r\n\tarchivo: string;\r\n\tcondicionDetenerProceso: boolean;\r\n\tnombreFuente: string;\r\n\t\r\n\t\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\n\r\nexport class FuenteServicioModel extends UnionModel {\r\n /** Descripcion general del evento/servicio */\r\n descripcion: String;\r\n /** La llave de la fuente dentro de la cual se encuentra configurado este servicio ()*/\r\n fuente: String;\r\n /** Llave de la tarea dentro de la cual se ejecuta este servicio */\r\n fuenteTarea: String;\r\n /** El orden en el cual se ejecuta este servicio dentro de la tarea*/\r\n orden: Number;\r\n /** Indica el origen del servicio (General o específico para un tipo de proceso, p.e. Contratacion)*/\r\n origen: String;\r\n /** El servicio seleccionado para este evento/*/\r\n servicio: String;\r\n filtro: String;\r\n tipoInformacion: String;\r\n /** Tipo de evento (Servicio, Humana Encuesta, Humana predefinida)*/\r\n tipo: String;\r\n codigo: String;\r\n origenServicio: String;\r\n servicioWeb: String;\r\n ordenMayor: Number;\r\n correo: String;\r\n\r\n predefinido: String;\r\n\r\n\r\n tipoRecurso: String;\r\n origenRecurso: String;\r\n origenFuente: String;\r\n //Flag que sirve para detener el servicio marcado 'S', si el servicio predecesor fallo \r\n detenerServicio: String;\r\n\r\n\r\n // Atributos para eventos de tipo HUMANA ENCUESTA o HUMANA PREDEFINIDA\r\n /** Cédula del responsable de la encuesta*/\r\n responsable: Number;\r\n /** Nombre del responsable de la encuesta*/\r\n nombreResponsable: String;\r\n diasAviso: Number;\r\n diasLimite: Number;\r\n\r\n // Atributos únicos de Eventos tipo HUMANA ENCUESTA\r\n /** Llave de la encuesta () asociada a este Evento/Servicio */\r\n encuesta: String;\r\n labelAutoriza: String;\r\n labelNoAutoriza: String;\r\n\r\n correoCopia: String;\r\n\r\n validador: String;\r\n tipoRegistro: String;\r\n\r\n horaInicio: Date;\r\n horaFinal: Date;\r\n periodo: String;\r\n campoFechaHasta: String;\r\n plantillaCorreo: String;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\n\r\nexport class FuncionalidadModel extends UnionModel {\r\n llave:String;\r\n codigo:String;\r\n descripcion:String;\r\n comodin:String;\r\n //FILTRO\r\n filtro?:String;\r\n\r\n}\r\n","export class GeneralModel {\r\n\r\n nombreDTO: string;\r\n nombreConsulta: string;\r\n seguridad: boolean;\r\n objeto: any;\r\n lista?:any[];\r\n\r\n constructor(nombreDTO:string, nombreConsulta:string, seguridad:boolean, objeto:any,lista?:any[]){\r\n this.nombreDTO = nombreDTO;\r\n this.nombreConsulta = nombreConsulta;\r\n this.seguridad = seguridad;\r\n this.objeto = objeto;\r\n this.lista = lista;\r\n }\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class GrupoAccesoModelModel extends UnionModel{\r\n\r\n llave: string;\r\n descripcion: string;\r\n sitio: string;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class GrupoControlFuncionModel extends UnionModel{\r\n\r\n llave: string;\r\n\tgrupo: string;\r\n\tcontrolFuncion: string;\r\n\tdescripcion: string;\r\n\tfuncionalidad: string;\r\n\tcodigo: string;\r\n\r\n}","import { FuenteLineaServicioModel } from \"./FuenteLineaServicioModel\";\r\n\r\nexport class GrupoFuenteModel {\r\n\r\n public codigo: string;// permite identificar el grupo posiblemente sea el orden en que se determino\r\n\tpublic llaveLineaGrupo: string;// \r\n\tpublic lineas: FuenteLineaServicioModel[]=[];\r\n\tpublic errores: string[];\r\n\tpublic servicios: FuenteLineaServicioModel[]=[]; \r\n\tpublic lineaGrupo: FuenteLineaServicioModel; // es la primer linea del grupo, guardar toda su informacion pertinente\r\n\tpublic unicaLinea: string;\r\n\tpublic mensajeErrores: string;\r\n\tpublic momento: string;\r\n\t\r\n\tpublic columnas: string[];\r\n \r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class GrupoPermisoModel extends UnionModel{\r\n \r\n llave: string;\r\n\tgrupo: String;\r\n\tpermiso: string;\r\n\tpermisoGrupo: string;\r\n\testado: string;\r\n\tmoduloPermiso: string;\r\n\tnombreModulo: string;\r\n\tnombrePermiso: string;\r\n\turlprincipal: string;\r\n\ttipo: string;\r\n\r\n}","export class ListaServicioModel {\r\n\r\n /** Codigo no mayor de 100 caracteres que identifica el servicio. Esta es la llave del servicio disponible y no se puede repetir*/\r\n\tpublic codigo: string; \r\n\t/** Descripcion del servicio que se puede cargar*/\r\n\tpublic descripcion: string;\r\n\t/** Clase/Interfaz de servicios que ofrece el servicio que se puede ejecutar*/\r\n\tpublic servicio: any;\r\n\t/** Nombre del metodo ejecutable definido dentro de la clase servicio */\r\n\tpublic metodo: string;\r\n\t/** Determina si el servicio requiere el uso de la credencial del usuario*/\r\n\tpublic credencial: boolean;\r\n\t/** Clase que implementa la interfaz IFiltroCamposSvc que se encarga de traer los campos para el servicio*/\r\n\tpublic claseFiltro: any; \r\n\t/** Determina si el servicio maneja a nivel de base de datos*/\r\n\tpublic servicioBaseDatos: Boolean;\r\n \r\n}","import { ModulosModel } from \"./ModulosModel\";\r\nimport { RolModel } from \"./RolModel\";\r\nimport { TareasModel } from \"./TareasModel\";\r\n\r\nexport class LoginOutDTO {\r\n login: string;\r\n authorities: AuthorityDTO[];\r\n token: string;\r\n expira: number;\r\n expiraStr: string;\r\n listaRoles: RolModel[];\r\n modulos : ModulosModel[];\r\n tareasmodulo: TareasModel[];\r\n modulodefecto:string;\r\n}\r\n\r\nexport class AuthorityDTO {\r\n authority: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class MensajeSistemaModel extends UnionModel{\r\n mensajeCodigoError:string;\r\n mensajeDescripError:string;\r\n mensajeSolucionError:string;\r\n filtro:string;\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class MenuPortalModel extends UnionModel {\r\n descripcion: string;\r\n}\r\n","export class ModulosModel {\r\n llave?: string;\r\n descripcion: string;\r\n aplicacion?: string;\r\n url?: string;\r\n email?: string;\r\n icono?: string;\r\n descripcionCorta?: string;\r\n descripcionLarga?: string;\r\n orden?: number;\r\n sigla?: string;\r\n iconoModulo?: string;\r\n\r\n constructor(llave?: string, descripcion?: string) {\r\n this.llave = llave;\r\n this.descripcion = descripcion;\r\n } }","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PaginaPortalModel extends UnionModel {\r\n\r\n descripcion:string;\r\n layout:string;\r\n tipoPagina:string;\r\n tipoSitio:string;\r\n sitio:string;\r\n pagina:string;\r\n codigoSitio:string;\r\n accion:string;\r\n llenarCache:string;\r\n permiso:string;\r\n\r\n sitioDesc:string;\r\n filtroNombre:string;\r\n filtroPagina:string;\r\n llaveEmpresa:string;\r\n llaveRol:string;\r\n cantidad:Number;\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ParametroComponente extends UnionModel {\r\n componentePagina: string;\r\n\tparametro: string;\r\n\tvalor: string;\r\n\tparametroCodigo: string;\r\n\tparametroDesc: string;\r\n}\r\n","export class ParametrosGeneralModel {\r\n\r\n nombreDTO: string;\r\n objeto: any;\r\n lista: any;\r\n parametros: any;\r\n json: any;\r\n\r\n constructor(nombreDTO?: string, objeto?: any, lista?: any, parametros?: any, json?:any) {\r\n this.nombreDTO = nombreDTO;\r\n this.lista = lista;\r\n this.parametros = parametros;\r\n this.objeto = objeto;\r\n this.json = json;\r\n }\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PermisocontenidoModel extends UnionModel{\r\n tipo:string;\r\n\ttipoComponente:string;\r\n\tcontenido:string;\r\n\tempresa:string;\r\n\trol:string;\r\n\tpagina:string;\r\n\tdescripcionContenido:string;\r\n\tdescripcionRol:string;\r\n\tnombrepagina:string;\r\n\tcomponentePagina:string;\r\n\tcodigoPagina:string;\r\n\tnombreContenido:string;\r\n\tnombreComplemento:string;\r\n\tnombreRol:string;\r\n\t//DATOS NO PERSISTENTES\r\n mostrarEditar: boolean;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PermisoFuncionModel extends UnionModel{\r\n\r\n llave: string;\r\n\tpermiso: string;\r\n\tcodigo: string;\r\n\tdescripcion: string;\r\n\tfuncionalidad: string;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PeticionModel extends UnionModel{\r\n\r\n\r\n request: number;\r\n url: String;\r\n usuario: String;\r\n sesion: String;\r\n conexion: String;\r\n empresa: String;\r\n rol: String;\r\n ip: String;\r\n origen: String;\r\n \r\n fecha: Date;\r\n fechaFinal: Date;\r\n filtro: String;\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PreguntaSeguridadModel extends UnionModel{\r\n\r\n codigo:string;\r\n descripcion:string;\r\n parametroBusqueda:string;\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PropiedadModel extends UnionModel{\r\n propiedad:string;\r\n descripcion:string;\r\n tipo:string;\r\n aplicativo:string;\r\n todos:string;\r\n cifrado:string;\r\n\r\n\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PublicacionWebModel extends UnionModel {\r\n\r\n\tllave: string;\r\n\tdescripcion: string;\r\n\truta: string;\r\n\trutaempresa: string;\r\n\tdepende: string;\r\n\tprefijo: string;\r\n\tcontrolExterno: string;\r\n\tnombrePadre: string;\r\n\tdiferente: string;\r\n\talmacenamiento: string;\r\n\turl: string;\r\n\turlDescarga: string;\r\n\trutaTemporal: string;\r\n\t;\r\n\trutaImagen: string;\r\n\tnombreRealEncriptado: string;\r\n\trutaRealEncriptada: string;\r\n\thijo: boolean;\r\n\tempresa: number;\r\n\tnumeroMesesVizualiza: number;\r\n\tnumeroMesesMantiene: number;\r\n\tcodigo: string;\r\n\ttipoPublicacion: string;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class PuntoProcesoModel extends UnionModel {\r\n\tpunto: string;\r\n\tdescripcion: string;\r\n\taplicacion: string;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class RecursoPuntoModel extends UnionModel {\r\n puntoProceso: string;\r\n puntoProcesoDescripcion: string;\r\n tipo: string;\r\n fuente: string;\r\n fuenteDescripcion: string;\r\n reporteFuente: string;\r\n reporteFuenteDescripcion: string;\r\n rolUsuario: string;\r\n filtro: string;\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteBandaModel extends UnionModel {\r\n reporteFuente: string;\r\n banda: string;\r\n totales: string;\r\n titulo: string;\r\n \r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteColumnaModel extends UnionModel {\r\n reporteFuente: string;\r\n sintaxis: string;\r\n orden: number;\r\n nombre: string;\r\n tipoDato: string;\r\n banda: string;\r\n formatoJasper: string;\r\n etiquetaJasper: string;\r\n operacion: string;\r\n excel: number;\r\n ordenExcel: string;\r\n parametroJasper: string;\r\n decimales: number;\r\n anchoJasper: number;\r\n anchoJasperLabel: number;\r\n resultadoX: number;\r\n resultadoY: number;\r\n alineacionResul: string;\r\n labelX: number;\r\n labelY: number;\r\n alineacionLabel: string;\r\n ordenTabla: number;\r\n ordenarTabla: string;\r\n buscarOrdenTabla: string;\r\n graficoFuente: string;\r\n valor: any;\r\n ordenDinamico: string;\r\n descripcionPopup: string;\r\n valorPopup: string;\r\n}\r\n","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteColumnarioModel extends UnionModel {\r\n /**\r\n\t * Nombre de la columna\r\n\t */\r\n\tnombre: string;\r\n\tsintaxis: string;\r\n\t/**\r\n\t * Orden en el que se presentara la columna\r\n\t */\r\n\torden: number;\r\n\t/**\r\n\t * Tipo de columna(Fila, Label,Celda,Adicional) \r\n\t */\r\n\ttipo: string;\r\n\t/**\r\n\t * Tipo de operacion que maneja en caso de ser Celda\r\n\t */\r\n\toperacion: string;\r\n\t/**\r\n\t * Referencia a una columna del reporte \r\n\t */\r\n\treporteColumna: string;\r\n\t/**\r\n\t * Referencia al reporte al que esta asociado \r\n\t */\r\n\treporteFuente: string;\r\n\t/**\r\n\t * Campo utilizado para conocer la columna del reporte utilizada\r\n\t */\r\n\tnombreColumna: string;\r\n\t\r\n\t/**\r\n\t * Se utiliza para realizar consultas y cuyos resultados\r\n\t * no contengan un registro en especifico(llave del registro) \r\n\t */\r\n\tdiferenteColumnario: string;\r\n\t/**\r\n\t * Permite obtener las columnas basicas y/o adicionales\r\n\t * de acuerdo al valor ingresado\r\n\t */\r\n\tfiltroColumnaBasica: string;\r\n\t/**\r\n\t * Representa la sintaxis de cada columna\r\n\t */\r\n\tsintaxisReporteColumna: string;\r\n\t\r\n\t\r\n\t/**\r\n\t * Indica si se desea realizar una operacion total por cada fila\r\n\t */\r\n\toperacionHorizontal: string;\r\n\t\r\n\t/**\r\n\t * Indica si se desea realizar una operacion total por cada columna\r\n\t */\r\n\r\n\toperacionVertical: string;\r\n\t\r\n\t/**\r\n\t * Indica en que columna se desea colocar la operacon vertical\r\n\t */\r\n\tcolumnaOperacionVertical: number;\r\n\t\r\n\t/**\r\n\t * Se utiliza para conocer el ordenamiento que utilizara la columna\r\n\t */\r\n\torderBy: string;\r\n\t\r\n\t\r\n\t/**\r\n\t * Se utiliza para conocer el orden en el que se organizaran los datos\r\n\t * en la consulta. Es decir, en el order by del columnario se organizaran\r\n\t * primero los datos por la fila que tenga el dato 1. \r\n\t */\r\n\tordenConsulta: number;\r\n\t\r\n\t\r\n\t\r\n\t\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteColumnarioMarcadorModel extends UnionModel {\r\n /**\r\n\t * Nombre del marcador a buscar en el archivo excel\r\n\t */\r\n\tmarcador: string;\r\n\t\r\n\t/**\r\n\t * Valor a asignar en el excel\r\n\t */\r\n\ttextoRegistro: string;\r\n\t/**\r\n\t * Descripcion del marcador\r\n\t */\r\n\tdescripcion: string;\r\n\t\r\n\t/**\r\n\t * Reporte al que esta asociado el marcador\r\n\t */\r\n\treporteFuente: string;\r\n\t\r\n\r\n\t/**\r\n\t * Indica el tipo de marcador a utilizar\r\n\t */\r\n\ttipo: string;\r\n\t\r\n\r\n\t\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteEntradaModel extends UnionModel {\r\n llave: string;\r\n reporteFuente: string;\r\n descripcion: string;\r\n tipoDato: string;\r\n valorDefecto: string;\r\n orden: number;\r\n solicitar: string;\r\n banda: string;\r\n valor: any;\r\n parametro: string;\r\n formato: string;\r\n llaveLista: string;\r\n tipo: string;\r\n fuenteDato: string;\r\n parametroEntrada: string;\r\n mapa: string;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteFuenteModel extends UnionModel {\r\n \r\n llave: string;\r\n descripcion: string;\r\n fuenteDato: string;\r\n whereSql: string;\r\n query: string;\r\n queryAdicional: string;\r\n groupby: string;\r\n orderby: string;\r\n modulo: string;\r\n archivoHtml: string;\r\n archivoIndividual: string;\r\n publicacion: string;\r\n campoPublica: string;\r\n hojaExcel: string;\r\n archivoTodo: string;\r\n campoEmail: string;\r\n campoClave: string;\r\n jasperFijo: string;\r\n jasperDinamico: string;\r\n modoFijo: string;\r\n nombreEmail: string;\r\n nombrePublica: string;\r\n reporteFuente: string;\r\n tablaDestino: string;\r\n procedimiento: string;\r\n seleccionado: boolean;\r\n whereSqlReporte: string;\r\n separador: string;\r\n origenFuente: string;\r\n nombreTabla: string;\r\n reporteExterno: string;\r\n rol: string;\r\n login: string;\r\n unicoArchivo: string;\r\n titulo: string;\r\n tituloParametro: string;\r\n dobleLinea: string;\r\n tagEncabezado: string;\r\n tagCierreEncabezado: string;\r\n estructuraRegistro: string;\r\n descargarFuente: string;\r\n archivoTexto: string;\r\n tipoArchivo: string;\r\n origenPermiso: string;\r\n afecta: string;\r\n campoAgrupacionPlanilla: string;\r\n nombreAgrupacionPlanilla: string;\r\n empresa: string;\r\n tituloGrafico: string;\r\n tipoGrafico: string;\r\n codigo: string;\r\n momento: string;\r\n publicaCarpeta: string;\r\n publicaTitulo: string;\r\n nombrePublicaCarpeta: string;\r\n nombreAdjunto: string;\r\n asuntoEmail: string;\r\n sintaxisColumnario: string;\r\n sintaxisColumnarioAdicional: string;\r\n filaInicioColumnario: number;\r\n hojaExcelColumnario: string;\r\n archivoExcelColumnario: string;\r\n generarPin: string;\r\n cifradoPlanilla: string;\r\n cifradoExcel: string;\r\n cifradoJasper: string;\r\n cifradoJasperFijo: string;\r\n cifradoTexto: string;\r\n cifradoXml: string;\r\n cifradoColumnario: string;\r\n\r\n /*listoDinamico: boolean;\r\n listoFijo: boolean;\r\n listoExcel: boolean;\r\n listoPlantilla: boolean;\r\n textoFijo: boolean;\r\n listoTabla: boolean;\r\n generaXML: boolean;\r\n generaColumnario: boolean;*/\r\n\r\n\tisGeneraExcel() {\r\n\t\treturn this.archivoTodo != null && this.hojaExcel != null && this.hojaExcel.trim().length > 0;\r\n\t}\r\n\r\n\tisGeneraXML() {\r\n\t\treturn this.isNotBlank(this.tagEncabezado) || this.isNotBlank(this.estructuraRegistro);\r\n\t}\r\n\r\n\tisGeneraColumnario() {\r\n\t\treturn this.archivoExcelColumnario != null && this.hojaExcelColumnario != null && this.hojaExcelColumnario.trim().length > 0;\r\n\t}\r\n\r\n\tisListoExcel() {\r\n\t\treturn !this.isBlank(this.archivoTodo) && !this.isBlank(this.hojaExcel);\r\n\t}\r\n\r\n\tisListoPlantilla() {\r\n\t\treturn !this.isBlank(this.archivoIndividual);\r\n\t}\r\n\r\n\tisListoTabla() {\r\n\t\treturn !this.isBlank(this.nombreTabla);\r\n\t}\r\n\r\n\tisListoDinamico() {\r\n\t\treturn this.isNotBlank(this.tituloParametro);\r\n\t}\r\n\r\n\tisTextoFijo() {\r\n\t\treturn this.isNotBlank(this.separador);\r\n\t}\r\n\r\n\tisListoFijo() {\r\n\t\treturn !this.isBlank(this.jasperFijo) && !this.isBlank(this.modoFijo);\r\n\t}\r\n\r\n\tisGeneraWord() {\r\n\t\treturn this.archivoIndividual == null;\r\n\t}\r\n\r\n\tisGeneraJasperFijo() {\r\n\t\treturn this.jasperFijo == null;\r\n\t}\r\n\r\n\tisGeneraDinamico() {\r\n\t\treturn this.jasperDinamico == null;\r\n\t}\r\n\r\n private isNotBlank(str: string | null | undefined): boolean {\r\n return str != null && str.trim().length > 0;\r\n }\r\n\r\n private isBlank(str: string | null | undefined): boolean {\r\n return str == null || str?.trim() === '';\r\n }\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteMarcadorModel extends UnionModel {\r\n llave: string;\r\n reporteColumna: string;\r\n marcador: string;\r\n formato: string;\r\n titulox: string;\r\n tituloy: string;\r\n filtro: string;\r\n fuente: string;\r\n marcadorGrafico: string;\r\n textoRegistro: string;\r\n grupo1: string;\r\n grupo2: string;\r\n grupo3: string;\r\n finalGrupo: string;\r\n tipo: string;\r\n tabla: number;\r\n reporteFuente: string;\r\n nombreColumna: string;\r\n tipoGrafico: string;\r\n descripcion: string;\r\n ancho: number;\r\n alto: number;\r\n origen: string;\r\n tipoReporte: string;\r\n ordenDinamico: string;\r\n banda: string;\r\n anchoJasperLabel: number;\r\n resultadoX: number;\r\n resultadoY: number;\r\n tipoDato: string;\r\n operacion: string;\r\n tipoCampo: string;\r\n marcadores: string;\r\n tieneSql: string;\r\n query: string;\r\n estructuraTablaXML: string;\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteSoporteModel extends UnionModel {\r\n reporteFuente: string;\r\n descripcion: string;\r\n archivoIndividual: string;\r\n tipo: string;\r\n orden: number;\r\n texto: string;\r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ReporteTablaModel extends UnionModel {\r\n llave: string;\r\n tipo: string;\r\n reporteMarcador: string;\r\n columna: number;\r\n campoFuente: string;\r\n formato: string;\r\n marcador: string;\r\n ancho: number;\r\n alto: number;\r\n \r\n} ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class RespuestaModel extends UnionModel {\r\n \r\n pregunta: string;\r\n\tdescripcionPregunta: string;\r\n\tusuario: string;\r\n\trespuesta: string;\r\n\tcorrecta: string;\r\n }\r\n"," \r\nexport class RolModel {\r\n llaveTabla: string;\r\n codigoEmpresa: string;\r\n codigo: string;\r\n nombreEmpresa: string;\r\n codigoConexion: string;\r\n llaveConexion: string;\r\n nombreConexion: string;\r\n codigoModulo: string;\r\n nombreModulo: string;\r\n codigoRol: string;\r\n nombreRol: string;\r\n login: string;\r\n documento: string;\r\n informacion: string;\r\n nombre: string;\r\n estilo: string;\r\n llaveUsuario: string;\r\n llaveGrupoAcceso: string;\r\n tipoEtiqueta: string;\r\n numeroEmpresa: number;\r\n aplicacion: string;\r\n busqueda: string;\r\n homologacion: string;\r\n aliasRol: string;\r\n llaveRol: string;\r\n ordenModulo: number;\r\n sitio: string;\r\n portal: string;\r\n conexionUrl: string;\r\n accesoPortal: string;\r\n\r\n base: string;\r\n admonPortal: boolean;\r\n\r\n llave:string;\r\n\tdescripcion:string;\r\n //DATOS NO PERSISTENTES\r\n mostrarEditar: boolean;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ServidorCorreoModel extends UnionModel{\r\n host: String;\r\n\t usuario: String;\r\n\t password: String;\r\n\t tls: String;\r\n\t auth: String;\r\n\t fromaddres: String;\r\n\t port: number;\r\n\t cantidadmaxima: number;\r\n\t cantidad: number;\r\n\t cantidadLote: number;\r\n\t fechaEnvio: Date;\r\n\t llave: String;\r\n\t defecto: String;\r\n\t seleccionado: boolean;\r\n\t debug: String;\r\n hostPeticion: String;\r\n\r\n\t //CorreoOrgEmpModDTO\r\n\t servidorCorreo: String;\r\n\t empresa: String;\r\n\t nombreEmpresa: String;\r\n\t rol: String;\r\n\t nombreRol: String;\r\n \r\n\t //DATOS NO PERSISTENTES\r\n\t mostrarEditar: boolean;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class SistemaMensajeModel extends UnionModel {\r\n\r\n llave: String;\r\n tipo: String;\r\n\tmensaje: String;\r\n\tfecha: Date;\r\n\tparametroBusqueda: String;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class SitioModel extends UnionModel{\r\n codigo:string;\r\n descripcion:string;\r\n paginaInicio:string;\r\n paginaHome:string;\r\n paginaSalida:string;\r\n accion:string;\r\n menuPortal:string;\r\n codigoPaginaHome:string;\r\n codigoPaginaInicio:string;\r\n codigoPaginaSalida:string;\r\n tema:string;\r\n codigoSitioSalida:string;\r\n codigoSitioInicio:string;\r\n codigoPaginaTerminos:string;\r\n propiedadMonitoreo:string;\r\n propiedadSSO:string;\r\n identificadorSSO:string;\r\n llavpaginaTerminose:string;\r\n paginaTerminos:string;\r\n paginaCambioClave:string;\r\n codigoCambioClave:string;\r\n\r\n\r\n\r\n\r\n}\r\n","export class TareasModel{\r\n fechaAdicionado:Date;\r\n fechaModificado:Date;\r\n adicionado:string;\r\n controlSeguimiento:string;\r\n llaveTabla:string;\r\n modificado:string;\r\n check:boolean;\r\n llavePermiso:string;\r\n llave:string;\r\n codigo:string;\r\n key:string;\r\n descripcion:string;\r\n padre:string;\r\n urlprincipal:string;\r\n urls:string;\r\n accion:string;\r\n gif:string;\r\n tipo:string;\r\n estado:string;\r\n modulo:string;\r\n nombreModulo:string;\r\n orden:number;\r\n parametro:string;\r\n nuevo:string;\r\n comodinBusqueda:string;\r\n llaveGrupo:string;\r\n ayuda:string;\r\n llaveDirecto:string;\r\n shortcut:string;\r\n llaveEmpresa:string;\r\n labelEmpresa:string;\r\n nombrePadre:string;\r\n gifPadre:string;\r\n nombreAbuelo:string;\r\n gifAbuelo:string;\r\n ordenPadre:string;\r\n ordenAbuelo:string;\r\n listaTareas:string;\r\n aplicacion:string\r\n siglaModulo:string\r\n configCms:string;\r\n grupo:string;\r\n alias:string\r\n nombreTabla:string;\r\n tareasHijas:TareasModel[];\r\n iconoModulo:string;\r\n\r\n constructor(descripcion?:string, nombrepadre?:string,icono?:string,){\r\n this.descripcion = descripcion;\r\n this.gif = icono;\r\n this.nombrePadre = nombrepadre;\r\n }\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class TextoDTO extends UnionModel{\r\n\r\nllave: string;\r\ntitulo: string;\r\ncontenido1: string;\r\ncontenido2: string;\r\ncontenido3: string;\r\n\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class TipoEtiquetaModel extends UnionModel {\r\n llave:String;\r\n descripcion:String;\r\n defecto:String;\r\n idioma:String;\r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class UsuariogrupoModel extends UnionModel{\r\n \r\n llave: string;\r\n\tempresa: string;\r\n\tusuario: string;\r\n\tgrupo: string;\r\n\tconexion: string;\r\n\tmodulo: string;\r\n\tnombreEmpresa: string;\r\n\tnombreGrupo: string;\r\n\tnombreConexion: string;\r\n\tnombreModulo: string;\r\n\tnombreUsuario: string;\r\n\torigen: string;\r\n\tempresaUsuario: string;\r\n\tllaveUsuario: string;\r\n\tloginUsuario: string;\r\n\torigenDato: string;\r\n\taplicacion: string;\r\n\tnombreAplicacion: string;\r\n\r\n\t//DATOS NO PERSISTENTES\r\n mostrarEditar: boolean;\r\n \r\n}","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class UsuarioModel extends UnionModel {\r\n id: string;\r\n nombre: string;\r\n apellido: string;\r\n empresa: string;\r\n usuario: string;\r\n clave: string;\r\n roles: string;\r\n estado: string;\r\n login: string;\r\n\r\n email: string;\r\n expiracion: Date;\r\n modoAutenticar: string;\r\n llaveGrupoAcceso: string;\r\n claves: string;\r\n fechaClave: Date;\r\n intentos: number;\r\n cedula: number;\r\n documento: string;\r\n parametroBusqueda: string;\r\n pin: string;\r\n intentosPregunta: number;\r\n tokenRecuperacion: string;\r\n terminosYCondiciones: string;\r\n fechaTerminosYCondiciones: Date;\r\n fechaHabilitar: Date;\r\n llaveEmpresa: string;\r\n checkAyuda: string;\r\n loginEmail: string;\r\n idioma: string;\r\n modulo: string;\r\n activo: string;\r\n empresaBase: string;\r\n nombreEmpresaBase: string;\r\n dobleAutenticacion: string;\r\n modificarCelda: boolean;\r\n \r\n\t\r\n /**\r\n * Se utiliza para conocer si el usuario debe cambiar la clave\r\n * en el proximo login \r\n */\r\n cambiarClave: string;\r\n\r\n /**\r\n * Usado para cargar el rol del usario en sara prime.\r\n */\r\n rolGrupal: string;\r\n\r\n /*\r\n * Atributos no persistentes\r\n */\r\n\r\n filtroGeneral: string;\r\n aplicacion: string;\r\n\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\n\r\nexport const environment = {\r\n production: false,\r\n crypto_secret_key: 'qwerty.123.zrtr*ty#qryt',\r\n urlapisara: \"http://186.86.125.178:9940\",\r\n codigoAplicacion: '1',\r\n nombreAplicacion: \"SARA\"\r\n /*urlapinucleo: \"http://localhost:7878\",\r\n urlapicorreo: \"http://localhost:7880\",\r\n crypto_secret_key: 'qwerty.123.zrtr*ty#qryt',\r\n codigoAplicacion: '13',\r\n nombreAplicacion: \"MANA\"*/\r\n};\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","export class UserLoginCredentials {\r\n login: string;\r\n clave: string;\r\n aplicacion: string;\r\n base: string;\r\n}\r\n","export class AuthenticationError extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.name = this.constructor.name;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilsService {\r\n\r\n private RESERVADAS_SQL_NOPUEDECONTENER: any[] = [';']\r\n private reservadas: any[] = ['ALTER', 'DELETE', 'DROP', 'MODIFY', 'CREATE', 'DATABASE', 'TABLE', 'UPDATE', 'TRIGGER', 'GRANT', 'REVOKE', 'CALL', 'INSERT', 'TRUNCATE', 'USE', '--']\r\n \r\n constructor(private cookieService: CookieService, @Inject(DOCUMENT) private document: Document,){\r\n }\r\n \r\n public generarLlave() {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = 32;\r\n for (let i = 0; i < charactersLength; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n\r\n return result.toLowerCase();\r\n }\r\n\r\n\r\n\r\n public generarPin(cantidad: number) {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n for (let i = 0; i < cantidad; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * cantidad));\r\n }\r\n\r\n return result.toLowerCase();\r\n }\r\n\r\n rightpad(str, length, char) {\r\n if (str === undefined) {\r\n return null;\r\n }\r\n if (typeof str !== 'string' || typeof length !== 'number') {\r\n throw new TypeError('Los argumentos deben ser una cadena y un número.');\r\n }\r\n\r\n if (str.length >= length) {\r\n return str;\r\n }\r\n\r\n char = char || ' '; // Utiliza un espacio como carácter de relleno si no se proporciona uno\r\n\r\n var padLength = length - str.length;\r\n var padding = char.repeat(padLength);\r\n\r\n return str + padding;\r\n }\r\n\r\n validarCampoNumerico(event: any) {\r\n const input = event.target;\r\n const regex = /[^0-9]/gi;\r\n input.value = input.value.replace(regex, '');\r\n }\r\n\r\n isNotBlank(str: string | String | null | undefined): boolean {\r\n return str != null && str.trim().length > 0;\r\n }\r\n\r\n isBlank(str: string | String | null | undefined): boolean {\r\n return str == null || str?.trim() === '';\r\n }\r\n\r\n validarCampoObligatorio(valor): boolean {\r\n // Verificar si el valor no es null ni undefined\r\n if (valor !== null && valor !== undefined) {\r\n // Verificar si el valor no es una cadena vacía (en caso de ser una cadena)\r\n if (typeof valor === 'string' && valor.trim() === '') {\r\n return false;\r\n }\r\n // Verificar si el valor no es un arreglo vacío (en caso de ser un arreglo)\r\n if (Array.isArray(valor) && valor.length === 0) {\r\n return false;\r\n }\r\n /*if (typeof valor === 'object' && Object.keys(valor).length === 0) {\r\n return false;\r\n }*/\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n capitalizeFully(inputString: string): string {\r\n if (!inputString) {\r\n return '';\r\n }\r\n const words = inputString.split(' ');\r\n const capitalizedWords = words.map(word => {\r\n if (word.length > 0) {\r\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n }\r\n return '';\r\n });\r\n const result = capitalizedWords.join(' ');\r\n return result;\r\n }\r\n\r\n ordenarSelectItemsAlfabeticamente(arrayDeObjetos: any[]): any[] {\r\n arrayDeObjetos.sort((a, b) => {\r\n const nombreA = a.label.toLowerCase();\r\n const nombreB = b.label.toLowerCase();\r\n\r\n if (nombreA < nombreB) {\r\n return -1;\r\n }\r\n if (nombreA > nombreB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n return arrayDeObjetos;\r\n }\r\n\r\n obtenerParametroDeURL(urlString: string, parametro: string): string | null {\r\n const url = new URL(urlString);\r\n const searchParams = new URLSearchParams(url.search);\r\n return searchParams.get(parametro);\r\n }\r\n\r\n validarEmail(email: string): boolean {\r\n const patronEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n return patronEmail.test(email);\r\n }\r\n\r\n obtenerBase(): (string | null) {\r\n\r\n var basePortal: string = null;\r\n var paginaActual: any = window.location.href\r\n var url = new URL(paginaActual);\r\n var params = new URLSearchParams(url.search);\r\n if (paginaActual.toString().includes('PortalSara')) {\r\n for (var match of paginaActual.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\r\n basePortal = match.groups?.seguridad;\r\n }\r\n } else if (params?.get('us_id')) {\r\n paginaActual = window.parent.location.href;\r\n for (var match of paginaActual.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\r\n basePortal = match.groups?.seguridad;\r\n }\r\n } else {\r\n const regex = /^.*?\\/\\/.*?\\/(.*?)\\//g; // Expresión regular para obtener la primera parte de la URL\r\n const match = Array.from(paginaActual.matchAll(regex));\r\n\r\n if (match && match[0] && match[0][1]) {\r\n basePortal = match[0][1];\r\n }\r\n }\r\n return basePortal;\r\n }\r\n\r\n private validarEspacio(caracter: string): boolean {\r\n const regex = /\\s/; // La expresión regular para espacios en blanco\r\n return regex.test(caracter); // Devuelve true si el carácter es un espacio en blanco\r\n }\r\n\r\n public validarTextoSQL(valor: string, obligatorio: boolean, select: boolean, longitud: number, validarSentencia: boolean): (string | null) {\r\n // Verifica obligatoriedad\r\n if (obligatorio && (valor == null || valor.trim().length == 0 || valor == '--')) {\r\n return 'Obligatorio';\r\n }\r\n // Verifica longitud máxima\r\n if (longitud > 0) {\r\n if (valor != null && valor != '--' && valor.length > longitud) {\r\n return 'Longitud maxima de ' + longitud;\r\n }\r\n }\r\n // Realiza las demás validacion solo en el caso de que la cadena SQL/valor no sea vacia\r\n if (valor == null || valor.trim().length == 0 || valor == '--')\r\n return null;\r\n\r\n if (validarSentencia) {\r\n if (select) {\r\n if (!valor.toUpperCase().startsWith('SELECT')) {\r\n return 'El texto debe iniciar con la palabra Select';\r\n }\r\n } else {\r\n if (valor.toUpperCase().includes('SELECT')) {\r\n return 'No puede contener la palabra Select';\r\n }\r\n }\r\n }\r\n var indice: number;\r\n var mensaje: string;\r\n this.RESERVADAS_SQL_NOPUEDECONTENER.forEach(item => {\r\n if (valor.includes(item)) {\r\n mensaje = 'No puede contener ' + item;\r\n }\r\n })\r\n this.reservadas.forEach(item => {\r\n if (valor.toUpperCase().includes(item.toUpperCase())) {\r\n indice = (valor.toUpperCase().indexOf(item.toUpperCase()));\r\n if (indice == 0 || (this.validarEspacio(valor.charAt(indice - 1)) && this.validarEspacio(valor.charAt(item.length + indice)))) {\r\n mensaje = 'No puede contener ' + item;\r\n }\r\n }\r\n })\r\n return mensaje;\r\n }\r\n\r\n sleep(ms: number): Promise<void> {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n }\r\n\r\n validarTextoArchivoJasper(texto: string): (string | null) {\r\n if (texto.trim() == '' || texto == null) {\r\n return \"El campo no puede estar vacio\";\r\n }\r\n if (texto.match(\"^[^\\\\D].*\")) {\r\n return \"El campo no puede iniciar con numeros\";\r\n }\r\n if (texto.match(\"^[^\\\\S].*\")) {\r\n return \"El campo no puede iniciar con caracteres en blanco\";\r\n }\r\n if (!texto.match(\"^[^\\\\W].*\")) {\r\n return \"El campo no puede iniciar con caracteres especiales\";\r\n }\r\n return null;\r\n }\r\n\r\n resizeWindowIFrame() {\r\n\t\tif ( window.frameElement != null) {\r\n\t\t\tthis.resizeIframeKeepPosition(window.frameElement);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * Funcion para mantener la posición actual en el iframe.\r\n\t * @param obj es un \"FrameElement\"\r\n\t */\r\n\tprivate resizeIframeKeepPosition(obj) {\r\n\t\t\r\n\t\tvar ifrm = obj;\r\n\t\tvar doc = ifrm.contentDocument ? ifrm.contentDocument: ifrm.contentWindow.document;\r\n var tamanio: number= this.getDocHeight( doc ) + 40\r\n\t\tifrm.style.height = tamanio + \"px\";\r\n\t}\r\n\r\n\tprivate getDocHeight(doc){\r\n console.log('getDocHeight')\r\n\t\tlet navegador = this.obtenerNavegador().toLowerCase();\r\n\t\tvar height = 0;\r\n\t\tdoc = doc || document;\r\n const appRoot = doc.querySelector('app-root');\r\n\r\n const swalPopup = doc.querySelector('.swal2-popup');\r\n if (swalPopup) {\r\n return swalPopup.offsetHeight + 40;\r\n }\r\n\r\n // Si encuentra el elemento <app-root>, retorna su altura\r\n if (appRoot) {\r\n return appRoot.offsetHeight;\r\n }\r\n\t\t//var body = doc.body, html = doc.documentElement;\r\n\t\t//height = Math.max( body.scrollHeight, body.offsetHeight, \r\n\t\t//html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n\t\t\r\n\t\tif (navegador.indexOf('firefox') !== -1){\r\n\t\t\tif(doc.formDetalleConvocatoria){\r\n\t\t\t\tlet cantidadMiles = height / 1000;\r\n\t\t\t\theight = height + 600 + (cantidadMiles*40)\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t//\tconsole.warn('FCO : llama a getDocHeight');\r\n\t\r\n\t\treturn height;\r\n\t}\r\n\r\n\tobtenerNavegador(){\r\n\t\tvar ua= navigator.userAgent, tem, \r\n\t\tM= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n\t\tif(/trident/i.test(M[1])){\r\n\t\t\ttem= /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n\t\t\treturn 'IE '+(tem[1] || '');\r\n\t\t}\r\n\t\tif(M[1]=== 'Chrome'){\r\n\t\t\ttem= ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\r\n\t\t\tif(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\r\n\t\t}\r\n\t\tM= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\r\n\t\tif((tem= ua.match(/version\\/(\\d+)/i))!= null) M.splice(1, 1, tem[1]);\r\n\t\treturn M.join(' ');\r\n\t}\r\n\r\n obtenerUrlApi(urlapi?: string ): string {\r\n if (urlapi){\r\n return urlapi;\r\n }\r\n switch (this.getTokenKey('aplicacion')) {\r\n case '1':\r\n return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');\r\n case '13':\r\n return window['env']['urlapimana'] ? window['env']['urlapimana'] : this.cookieService.get('urlnucleo');\r\n case '10':\r\n return window['env']['urlapisara'] ? window['env']['urlapisara'] : this.cookieService.get('urlnucleo');\r\n //return window['env']['urlapi'] ? window['env']['urlapi'] : this.cookieService.get('urlnucleo');\r\n case '77':\r\n return window['env']['urlapimanaaps'] ? window['env']['urlapimanaaps'] : this.cookieService.get('urlnucleo');\r\n default:\r\n return this.cookieService.get('urlnucleo');\r\n }\r\n }\r\n\r\n private getTokenKey(key: string): string {\r\n try {\r\n const data = this._decodeToken();\r\n return data[key].toString();\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n\r\n private _decodeToken(): any {\r\n try {\r\n const token = this.getItem('token', '');\r\n const data = token.split('.')[1];\r\n return JSON.parse(atob(data));\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n getItem(key: string, defaultValue?: string): string | undefined {\r\n return localStorage.getItem(this.obtenerBase() + '_' + key) ?? defaultValue;\r\n }\r\n\r\n cambiarTema(tema : ('temaClaro' | 'temaOscuro')){\r\n localStorage.setItem(this.obtenerBase() + '_' +'tema', tema);\r\n let linkTema = this.document.getElementById('temaApp') as HTMLLinkElement;\r\n linkTema.href = `${tema}.css`\r\n }\r\n\r\n calcularPosicionDialog() {\r\n var parentWindow: Window = window.parent;\r\n var obj: any = window.frameElement ;\r\n var ifrm = obj;\r\n if (ifrm) {\r\n const scrollTop = parentWindow.pageYOffset || parentWindow.document.documentElement.scrollTop || parentWindow.document.body.scrollTop || 0;\r\n const dialog = document.querySelector('.p-dialog') as HTMLElement;\r\n if (dialog) {\r\n const scrollHeight = parentWindow.document.documentElement.scrollHeight\r\n const mitadScrollHeight = scrollHeight / 2;\r\n const inicio = -mitadScrollHeight;\r\n dialog.style.top = `${inicio + 50 + (scrollTop ) }px`; }\r\n }\r\n }\r\n\r\n validarPalabra(texto: string): boolean {\r\n const pletras = /^[a-zA-Z][0-9a-zA-Z]*$/;\r\n return pletras.test(texto);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { UtilsService } from './utils.service';\r\nimport { jwtDecode } from \"jwt-decode\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StorageService {\r\n constructor(private utilsService: UtilsService) {}\r\n\r\n private rolSeleccionado;\r\n\r\n setRolSeleccionado(rolSeleccionado) {\r\n this.rolSeleccionado = rolSeleccionado;\r\n }\r\n\r\n\r\n /**\r\n * Guarda un valor string en la clave dada dentro del localStorage\r\n * @param key Clave\r\n * @param value Valor en formato texto\r\n */\r\n setItem(key: string, value: string): void {\r\n localStorage.setItem(this.utilsService.obtenerBase() + '_' + key, value);\r\n }\r\n\r\n /**\r\n * Retorna el valor almacenado en el localStorage bajo la clave dada.\r\n * Si no existe y se específica un valor por defecto se retorna el valor\r\n * por defecto. En caso que no se especifique ningun valor, se retorna\r\n * undefined.\r\n * @param key clave\r\n * @param defaultValue Valor opcional por defecto\r\n * @returns string | undefined\r\n */\r\n getItem(key: string, defaultValue?: string): string | undefined {\r\n return localStorage.getItem(this.utilsService.obtenerBase() + '_' + key) ?? defaultValue;\r\n }\r\n\r\n /**\r\n * Borra del localStorage la clave/valor de la clave dada.\r\n * @param key Clave\r\n */\r\n removeItem(key: string): void {\r\n localStorage.removeItem(this.utilsService.obtenerBase() + '_' + key);\r\n }\r\n\r\n /**\r\n * Borra todos los datos del localStorage\r\n */\r\n clear(): void {\r\n localStorage.clear();\r\n }\r\n\r\n getSessionToken() {\r\n let tokenEncriptado: any = localStorage.getItem(this.utilsService.obtenerBase() + '_' + 'token');\r\n /*let tokenDecrypt = CryptoJS.AES.decrypt(tokenEncriptado, environment.crypto_secret_key);\r\n let tokenDecryptString = tokenDecrypt.toString(CryptoJS.enc.Utf8);\r\n let token = JSON.parse(tokenDecryptString);*/\r\n return tokenEncriptado;\r\n }\r\n\r\n getDecodedJWT(){\r\n let jwt = this.getSessionToken();\r\n let tokenDecoded = JSON.parse(JSON.stringify(jwtDecode(jwt)));\r\n return tokenDecoded;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, map, Observable } from 'rxjs';\r\nimport { AuthenticationError } from '../errores/authentication.error';\r\nimport { StorageService } from './storage.service';\r\nimport { UtilsService } from './utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CargarControlFuncionalidadService {\r\n\r\n constructor(private httpClient: HttpClient, private storageService: StorageService, private utilsService: UtilsService) { }\r\n\r\n cargarFuncionalidad(rol: any, url : string, headers: HttpHeaders): Observable<string> {\r\n return this.httpClient.post<any>(url, rol, {headers}).pipe(\r\n map((data) => {\r\n const controlFuncionalidades = (data as any)?.controlFuncionalidades as string;\r\n this.storageService.setItem('controlFuncionalidades', controlFuncionalidades);\r\n return null;\r\n }), catchError((error) => {\r\n if (error.status >= 400) {\r\n throw new AuthenticationError('Error consultando control de funcionalidades.');\r\n }\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n getControlFuncionalidad(valor: string) : boolean{\r\n if (this.storageService.getItem('controlFuncionalidades') != null){\r\n let listaFuncionalidades = this.storageService.getItem('controlFuncionalidades');\r\n var validar = listaFuncionalidades.indexOf(valor);\r\n if(validar !== -1){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Borra controles de funcionalidad en la sesión\r\n */\r\n eliminarFuncionalidades(): void {\r\n this.storageService.removeItem('controlFuncionalidades');\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { catchError, map, Observable, tap } from 'rxjs';\r\nimport { UserLoginCredentials } from '../modelos/user.model';\r\nimport { AuthenticationError } from '../errores/authentication.error';\r\nimport { StorageService } from './storage.service';\r\nimport { CargarControlFuncionalidadService } from './cargar-control-funcionalidad.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { TareasModel } from '../../seguridad/modelos/TareasModel';\r\nimport { ModulosModel } from '../../seguridad/modelos/ModulosModel';\r\nimport { RolModel } from '../../seguridad/modelos/RolModel'; \r\nimport { environment } from '../../../environments/environment';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n constructor(\r\n private http: HttpClient,\r\n private storageService: StorageService, \r\n private controlFuncionalidad: CargarControlFuncionalidadService,\r\n private cookieService: CookieService) {}\r\n\r\n /**\r\n * Realiza la petición para autenticar al usuario. Devuelve el token que generó el servicio.\r\n * @param credentials Objeto con los datos de acceso\r\n * @returns Token válido\r\n */\r\n login(credentials: UserLoginCredentials, urlapinucleo, tokenPublico): Observable<string> {\r\n const url = `${urlapinucleo}/authentication/login`;\r\n if (!this.cookieService.get('urlnucleo')){\r\n this.cookieService.set('urlnucleo', urlapinucleo);\r\n }\r\n var headers = new HttpHeaders().set('Authorization', `Bearer ${tokenPublico}`)\r\n return this.http.post<string>(url, credentials, {headers}).pipe(\r\n map((data) => {\r\n const token = (data as any)?.token as string;\r\n this.storageService.setItem('token', token);\r\n\r\n /**********************************\r\n * Control funcionalidades\r\n **********************************/\r\n /* let rol: any = {}\r\n rol.codigoRol = this.getTokenKey('llaveRol');\r\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, headers).subscribe({});\r\n */\r\n var listRoles = (data as any)?.listaRoles;\r\n console.log(listRoles)\r\n if (listRoles.length > 1 ){\r\n this.storageService.setItem('roles', JSON.stringify(listRoles));\r\n //this.mostrarRoles = true;\r\n }if (listRoles.length == 1 ){\r\n let rol: any = {}\r\n rol.codigoRol = this.getTokenKey('llaveRol');\r\n rol.aplicacion = this.getTokenKey('aplicacion');\r\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, headers).subscribe({});\r\n /********************************************************************************************/\r\n /* Codigo temporal para mantener las tareas, pero estas deben ser obtenidas por un servicio */\r\n var tareas: TareasModel[] = (data as any).tareasmodulo;\r\n console.log(tareas)\r\n this.storageService.setItem('__tareas', JSON.stringify(tareas));\r\n var modulosDeTareas = tareas.filter((obj, index, self) => {\r\n return index === self.findIndex((o) => o.modulo === obj.modulo);\r\n });\r\n var modulos: ModulosModel[] = [];\r\n modulosDeTareas.forEach(data => {\r\n let modulo: ModulosModel = {\r\n llave: data.modulo,\r\n descripcion: data.nombreModulo,\r\n icono: data.iconoModulo\r\n }\r\n modulos.push(modulo)\r\n })\r\n console.log('entra aca login general');\r\n\r\n this.storageService.setItem('modulos', JSON.stringify(modulos));\r\n if (this.storageService.getItem('moduloFavorito') !== undefined && this.storageService.getItem('moduloFavorito')){\r\n this.storageService.setItem('moduloSeleccionado', this.storageService.getItem('moduloFavorito'));\r\n }else {\r\n let modulodefecto = (data as any)?.modulodefecto;\r\n if (!modulodefecto) {\r\n modulodefecto = modulos[0].llave;\r\n }\r\n this.storageService.setItem('moduloSeleccionado', modulodefecto);\r\n }\r\n }\r\n let tokenDecrypt = CryptoJS.AES.encrypt(JSON.stringify((data as any)?.autenticacionUsuarioDTO), environment.crypto_secret_key)\r\n this.storageService.setItem('autenticacionUsuarioDTO', tokenDecrypt.toString());\r\n \r\n /********************************************************************************************/\r\n return token;\r\n }),\r\n catchError((error) => {\r\n if (error.status >= 400) {\r\n throw new AuthenticationError('Usuario/contraseña inválido.');\r\n }\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Devuelve el token almacenado en el storage o vacio si no lo encuentra\r\n * @returns Token\r\n */\r\n getToken(): string {\r\n return this.storageService.getItem('token', '');\r\n }\r\n\r\n /**\r\n * Devuelve el valor asociado a la llave que se encuentra almacenado en el token.\r\n * @param key Llave presente en el objeto del token\r\n * @returns Valor almacenado\r\n */\r\n getTokenKey(key: string): string {\r\n try {\r\n const data = this._decodeToken();\r\n return data[key].toString();\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /**\r\n * Indica si el token almacenado en el storage es válido verificando que se\r\n * pueda decodificar y que el tiempo actual sea menor al de expiración.\r\n * @returns\r\n */\r\n isTokenValid(): boolean {\r\n try {\r\n const data = this._decodeToken();\r\n const expiryTime = data.exp;\r\n const currentTime = Math.floor(new Date().getTime() / 1000);\r\n if((currentTime <= expiryTime) && this.getTokenKey('numeroEmpresa') && this.getTokenKey('nombreConexion')){\r\n return true\r\n }\r\n return false;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Borra el token del usuario para invalidar la sesión\r\n */\r\n deleteToken(): void {\r\n this.storageService.removeItem('token');\r\n }\r\n\r\n /**\r\n * Decodifica el token que esta almacenado y devuelve el objeto que representa\r\n * @returns Información almacenada en el Token\r\n */\r\n private _decodeToken(): any {\r\n try {\r\n const token = this.getToken();\r\n const data = token.split('.')[1];\r\n return JSON.parse(atob(data));\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public refrescarToken(objeto: any, token): Observable<any> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`);\r\n return this.http.post<any>(`${url}/authentication/refrescarToken`, objeto, { headers });\r\n }\r\n\r\n public generarTokenPublico(urlnucleo?) {\r\n let url = this.cookieService.get('urlnucleo')\r\n if (!url){\r\n url = urlnucleo\r\n }\r\n return this.http.get<any>(`${url}/authentication/generarTokenPublico`);\r\n }\r\n\r\n public seleccionRol(_rolSeleccionado: RolModel, urlnucleo?): Observable<any> {\r\n let url = this.cookieService.get('urlnucleo')\r\n if (!url){\r\n url = urlnucleo\r\n }\r\n return this.http.post<any>(`${url}/requieretoken/rol/seleccionado`, _rolSeleccionado);\r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api/menuitem';\r\nimport { map, Observable, of, ReplaySubject, Subject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MenuService {\r\n private _menu: { [key: string]: MenuItem } = {};\r\n private _menuSource = new Subject<MenuItem>();\r\n private _breadcrumbSource = new Subject<MenuItem[]>();\r\n private _menuObservable$ = this._menuSource.asObservable();\r\n private _breadcrumbObservable$ = this._breadcrumbSource.asObservable();\r\n\r\n constructor(private storageService: StorageService) {}\r\n\r\n /**\r\n * Observable para los eventos del breadcrumb\r\n */\r\n get breadcrumb() {\r\n return this._breadcrumbObservable$;\r\n }\r\n\r\n /**\r\n * Observable para el menu principal\r\n */\r\n get menu() {\r\n return this._menuObservable$;\r\n }\r\n\r\n /**\r\n * Agrega items al breadcrumb\r\n * @param items\r\n */\r\n setBreadcrumb(items: MenuItem[]): void {\r\n this._breadcrumbSource.next(items);\r\n }\r\n\r\n /**\r\n * Consulta la lista de tareas del usuario para cargar el menú\r\n * @returns\r\n */\r\n loadTareas(): Observable<void> {\r\n /********************************************************/\r\n /* Se debe cambiar con el request al servicio de tareas */\r\n this._menu = {}\r\n return of(JSON.parse(this.storageService.getItem('__tareas'))).pipe(\r\n map((tareas: any[]) => {\r\n const arbolTareas: any[] = [];\r\n\r\n let nodoBase = null;\r\n let nodoHijo = null;\r\n \r\n for (const unaTarea of tareas) {\r\n const modulo = unaTarea.modulo+'';\r\n if (!(modulo in this._menu)) {\r\n this._menu[modulo] = { label: unaTarea.nombreModulo, items: [] };\r\n }\r\n if (!unaTarea.nombrePadre) {\r\n arbolTareas.push(unaTarea);\r\n continue;\r\n }\r\n \r\n nodoBase = null;\r\n \r\n // Buscar en el primer nivel\r\n for (const unNodo of arbolTareas) {\r\n if (unNodo.tipo !== \"M\") {\r\n continue;\r\n }\r\n if (unaTarea.nombreAbuelo && unNodo.descripcion === unaTarea.nombreAbuelo && unNodo.modulo === unaTarea.modulo) {\r\n // Buscar en el segundo nivel\r\n for (const unNodo2 of unNodo.listaTareas || []) {\r\n if (unNodo2.tipo !== \"M\") {\r\n continue;\r\n }\r\n if (unNodo2.descripcion === unaTarea.nombrePadre && unNodo2.modulo === unaTarea.modulo) {\r\n nodoBase = unNodo2;\r\n break;\r\n }\r\n }\r\n if (!nodoBase) {\r\n nodoHijo = {\r\n descripcion: unaTarea.nombrePadre,\r\n gif: unaTarea.gifPadre,\r\n tipo: \"M\",\r\n listaTareas: [],\r\n modulo: unaTarea.modulo,\r\n };\r\n unNodo.listaTareas!.push(nodoHijo);\r\n nodoBase = nodoHijo;\r\n }\r\n break;\r\n }\r\n if (unNodo.descripcion === unaTarea.nombrePadre && unNodo.modulo === unaTarea.modulo) {\r\n nodoBase = unNodo;\r\n break;\r\n }\r\n }\r\n \r\n if (!nodoBase) {\r\n nodoBase = {\r\n descripcion: unaTarea.nombreAbuelo || unaTarea.nombrePadre,\r\n gif: unaTarea.nombreAbuelo ? unaTarea.gifAbuelo : unaTarea.gifPadre,\r\n orden: unaTarea.nombreAbuelo ? unaTarea.ordenAbuelo : unaTarea.ordenPadre,\r\n tipo: \"M\",\r\n listaTareas: [],\r\n modulo: unaTarea.modulo,\r\n };\r\n arbolTareas.push(nodoBase);\r\n \r\n if (unaTarea.nombreAbuelo) {\r\n nodoHijo = {\r\n descripcion: unaTarea.nombrePadre,\r\n gif: unaTarea.gifPadre,\r\n tipo: \"M\",\r\n listaTareas: [], \r\n modulo: unaTarea.modulo,\r\n };\r\n nodoBase.listaTareas!.push(nodoHijo);\r\n nodoBase = nodoHijo;\r\n }\r\n }\r\n nodoBase.listaTareas!.push(unaTarea);\r\n }\r\n let respuesta = this.convertToMenuItems(arbolTareas);\r\n respuesta.forEach(dato => {\r\n const modulo = dato.tabindex;\r\n this._menu[modulo].items.push(dato);\r\n }) \r\n })\r\n );\r\n /********************************************************/\r\n }\r\n\r\n convertToMenuItems(tareas: any[]): MenuItem[] {\r\n return tareas.map(tarea => {\r\n const menuItem: MenuItem = {\r\n label: tarea.descripcion,\r\n icon: tarea.gif ? 'glyphicons ' + tarea.gif : undefined,\r\n routerLink: tarea.urlprincipal ? tarea.urlprincipal.replace(/.jsf/, '') : undefined,\r\n tabindex: tarea.modulo,\r\n items: tarea.listaTareas ? this.convertToMenuItems(tarea.listaTareas) : undefined\r\n };\r\n return menuItem;\r\n });\r\n }\r\n\r\n setTareasDelModulo(modulo: string): void {\r\n this._menuSource.next(this._menu[modulo]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport Swal from 'sweetalert2';\r\nimport { ErrorResponseModel } from '../modelos/error-response.model';\r\nimport { UtilsService } from './utils.service';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { StorageService } from './storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorIntecertorService {\r\n\r\n constructor(private utilsService: UtilsService,\r\n private route: Router,\r\n private authService: AuthService,\r\n private storageService: StorageService,\r\n ) { }\r\n\r\n /**\r\n * Muestra un mensaje de error según el tipo de error proporcionado.\r\n * @param errorJson El objeto JSON que representa el error.\r\n */\r\n showError(errorJson: string): void {\r\n const error: ErrorResponseModel = JSON.parse(errorJson);\r\n if (error.codigo == 'UNI-DB-002' || error.codigo == 'UNI-DB-003' \r\n || error.mensaje?.includes('Se produjo un error de red') || error.mensaje?.includes('El servicio no está disponible') \r\n || error.mensaje?.includes('Conexion no valida')) {\r\n this.storageService.setItem('mensaje_notfound', error.mensaje);\r\n this.storageService.setItem('url_regresar', window.location.href);\r\n window.location.href = window.location.origin + '/' + this.utilsService.obtenerBase() + '/not-found'\r\n //this.route.navigate([this.utilsService.obtenerBase()+'/not-found']);\r\n return;\r\n }\r\n if (error.tipo === 'INF') {\r\n this.showInfo(error.mensaje, error.codigo);\r\n } else if (error.tipo === 'WAR') {\r\n this.showWarning(error.mensaje, error.codigo, error.causa, error.accion, error.traza);\r\n } else if (error.tipo === 'ERR') {\r\n this.showErrorDetails(error.mensaje ? error.mensaje : '', error.codigo, error.traza, error.causa);\r\n }\r\n }\r\n\r\n /**\r\n * Muestra un mensaje de información con el código.\r\n * @param mensaje El mensaje a mostrar.\r\n * @param codigo El código asociado al mensaje.\r\n */\r\n private showInfo(mensaje: string, codigo: string): void {\r\n Swal.fire({\r\n background: '#f7bfbf',\r\n position: 'top-end',\r\n html: '<div style=\"text-align: left;\">' +\r\n '<p style=\"text-align: left;\"><b>Código:</b> ' + codigo + '</p>' +\r\n '<p style=\"text-align: left; font-size:12px\">' + mensaje + '</p>' +\r\n '</div>',\r\n showConfirmButton: false,\r\n timer: 5500,\r\n color: '#ff0000'\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.close) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n });\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n\r\n /**\r\n * Muestra una advertencia con detalles adicionales como causa, acción y traza.\r\n * @param mensaje El mensaje a mostrar.\r\n * @param codigo El código asociado al mensaje.\r\n * @param causa La causa del error.\r\n * @param accion La acción recomendada.\r\n * @param traza La traza del error.\r\n */\r\n private showWarning(mensaje: string, codigo: string, causa: string, accion: string, traza: string): void {\r\n let contenidoHtml = `<p class=\"msjError\">${mensaje}</p>`\r\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(codigo) ? `<p class=\"cauError\"><b>Código:</b> ${codigo}</p>` : ' ');\r\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(causa) ? `<p class=\"cauError\"><b>Causa:</b> ${causa}</p>` : ' ');\r\n contenidoHtml = contenidoHtml + (this.utilsService.validarCampoObligatorio(accion) ? `<p class=\"cauError\"><b>Acción Recomendada:</b> ${accion}</p>` : ' ');\r\n let contenidoPlusHtml = `<p class=\"msjError\">${mensaje.slice(0, 100)}</p><button id=\"verMasButton\">Ver más</button> <button id=\"Ok\">OK</button>`;\r\n\r\n Swal.fire({\r\n title: '<span style=\"color: var(--color-700);\">' + 'Advertencia' + '</span>',\r\n html: contenidoHtml,\r\n icon: 'warning',\r\n showCancelButton: false,\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n didOpen: () => {\r\n const OkButton = document.getElementById('Ok');\r\n OkButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-ok');\r\n OkButton.addEventListener('click', () => {\r\n Swal.close();\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n });\r\n },\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.close) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n });\r\n \r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n\r\n /**\r\n * Muestra un mensaje de error con detalles adicionales como el código de error y la traza.\r\n * @param mensaje El mensaje a mostrar.\r\n * @param errorCode El código de error asociado al mensaje.\r\n * @param traza La traza del error.\r\n */\r\n private showErrorDetails(mensaje: string, codigo: string, traza: string, causa? : string): void {\r\n let contenidoHtml = `<p class=\"msjError\">${mensaje}</p><p class=\"codError\"><b>Código:</b> ${codigo}</p><p class=\"traError\"><b>Traza:</b> ${traza}</p><p class=\"cauError\">`;\r\n if (causa!= null && causa != undefined) {\r\n contenidoHtml = `<p class=\"msjError\">${mensaje}</p><p class=\"codError\"><b>Código:</b> ${codigo}</p><p class=\"traError\"><b>Traza:</b> ${traza}</p><p class=\"cauError\"><b>Causa:</b> ${causa}</p>`;\r\n }\r\n let contenidoPlusHtml = `<p class=\"msjError\">${mensaje.slice(0, 100)}</p><button id=\"verMasButton\">Ver más</button> <button class=\"btn-ok\" id=\"Ok\">OK</button>`;\r\n\r\n Swal.fire({\r\n title: '<span style=\"color: var(--color-700);\">' + 'Error' + '</span>',\r\n html: (mensaje.length + traza.length) > 100 ? contenidoPlusHtml : contenidoHtml,\r\n icon: 'error',\r\n showCancelButton: false,\r\n showCloseButton: true,\r\n showConfirmButton: false,\r\n customClass: 'my-swal',\r\n didOpen: () => {\r\n if ((mensaje.length + traza.length) > 100) {\r\n // Agregar estilos al botón \"Ver más\"\r\n const verMasButton = document.getElementById('verMasButton');\r\n verMasButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-vermas' );\r\n\r\n const OkButton = document.getElementById('Ok');\r\n OkButton.classList.add('swal2-styled', 'swal2-cancel' , 'btn-ok');\r\n\r\n // Agregar un evento al botón \"Ver más\" para mostrar todo el contenido cuando se hace clic\r\n verMasButton.addEventListener('click', () => {\r\n Swal.update({\r\n html: contenidoHtml,\r\n showConfirmButton: true,\r\n });\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n });\r\n\r\n OkButton.addEventListener('click', () => {\r\n Swal.close();\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n });\r\n }\r\n else{\r\n Swal.update({\r\n html: contenidoHtml,\r\n showConfirmButton: true,\r\n });\r\n }\r\n },\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.close) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n });\r\n \r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { TimeoutError, catchError, firstValueFrom, throwError } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { AuthService } from './auth.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { UtilsService } from './utils.service';\r\nimport { ErrorIntecertorService } from './error-interceptor.service';\r\nimport { ToastService } from './toast.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TemplateService {\r\n constructor(\r\n private storageService: StorageService,\r\n private cookieService: CookieService,\r\n private authService: AuthService,\r\n private utilsService: UtilsService,\r\n private errorInterceptor : ErrorIntecertorService,\r\n private http: HttpClient) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error instanceof TimeoutError) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}));\r\n } else if (error instanceof HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurreda\r\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}));\r\n } else {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}));\r\n }\r\n } else {\r\n if (error.status == 0) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}));\r\n } else {\r\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\r\n }\r\n }\r\n }\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n\r\n async getTemplateColor(urlapinucleo, codigoAplicacion, nombreAplicacion): Promise<string> {\r\n if (!this.cookieService.get('urlnucleo')){\r\n this.cookieService.set('urlnucleo', urlapinucleo)\r\n }\r\n const color = this.storageService.getItem('color');\r\n var basePortal: string = this.utilsService.obtenerBase();\r\n if (window.location.href.endsWith('not-found')) {\r\n return \"#F1710C\";\r\n }\r\n let data = await this.authService.generarTokenPublico(urlapinucleo).toPromise();\r\n var headers = new HttpHeaders().set('Authorization', `Bearer ${data.token}`).set('Base', basePortal);\r\n if (!color) {\r\n const url = `${urlapinucleo}/authentication/inicio`;\r\n let params = new HttpParams();\r\n params = params.set('numeroAplicacion', codigoAplicacion);\r\n params = params.set('tipo', 'color');\r\n const response = await this.http.get(url, { params: params, headers: headers } ).pipe(\r\n catchError(this.handleError)\r\n ).toPromise();\r\n const newColor = (response as any)?.colores?.color1;\r\n\r\n if (newColor) {\r\n this.storageService.setItem('color', newColor);\r\n return newColor;\r\n }\r\n\r\n return '#ffffff';\r\n }\r\n\r\n return color;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport Swal from 'sweetalert2';\r\nimport { UtilsService } from './utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToastService {\r\n private _delay: number = 10000;\r\n\r\n constructor(private messageService: MessageService, private utilsService: UtilsService) {}\r\n\r\n /**\r\n * Muestra el toast con el mensaje de éxito enviado.\r\n * @param message\r\n * @param title\r\n */\r\n showSuccess(message: string, title?: string): void {\r\n this._showMessage('success', title ?? 'OK', message);\r\n }\r\n\r\n /**\r\n * Muestra el toast con el mensaje informativo enviado.\r\n * @param message\r\n * @param title\r\n */\r\n showInfo(message: string, title?: string): void {\r\n this._showMessage('success', title ?? 'Ok', message);\r\n }\r\n\r\n /**\r\n * Muestra el toast con el mensaje de advertencia enviado.\r\n * @param message\r\n * @param title\r\n */\r\n showWarningPopup(message: string, title?: string): void {\r\n message = message.replace(/\\n/g, '<br/>');\r\n let contenidoHtml = `<p class=\"msjError\" stye=\"text-align: left;\">${message}</p>`\r\n Swal.fire({\r\n title:`<span style=\"color: var(--color-700);\">${title ? title : 'Información'}</span>`,\r\n html: contenidoHtml,\r\n icon: 'success',\r\n showCancelButton: false,\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n didOpen: () => {\r\n const OkButton = document.getElementById('Ok');\r\n OkButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-ok');\r\n OkButton.addEventListener('click', () => {\r\n Swal.close();\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n });\r\n },\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.cancel) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n } else if (result.dismiss === Swal.DismissReason.close) {\r\n this.utilsService.sleep(500).then(data => {\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Muestra el toast con el mensaje de advertencia enviado.\r\n * @param message\r\n * @param title\r\n */\r\n showWarning(message: string, title?: string): void {\r\n this._showMessage('warn', title ?? 'Advertencia', message);\r\n }\r\n\r\n /**\r\n * Muestra el toast con el mensaje de error enviado.\r\n * @param message\r\n * @param title\r\n */\r\n showError(message: string, title?: string): void {\r\n this._showMessage('error', title ?? 'Error', message);\r\n }\r\n\r\n /**\r\n * Agregar un mensaje al servicio para que el toast lo muestre.\r\n * @param severity success | info | warn | error\r\n * @param title\r\n * @param message\r\n */\r\n private _showMessage(severity: string, title: string, message: string): void {\r\n console.log('_showMessage')\r\n console.log(window['env']['codigoAplicacion'])\r\n if ('10' == window['env']['codigoAplicacion']) {\r\n window.parent.postMessage({ type: 'toast', data: { severity: severity , summary: title, detail: message } }, '*');\r\n } else {\r\n this.messageService.add({\r\n severity: severity,\r\n summary: title,\r\n detail: message,\r\n life: this._delay,\r\n styleClass: 'toast-salto-linea'\r\n });\r\n }\r\n \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingService {\r\n\r\n private _loadingFullScreen: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _loadingFullScreenObservable$ = this._loadingFullScreen.asObservable();\r\n\r\n private _loadingBreadCrumb: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _loadingBreadCrumbObservable$ = this._loadingBreadCrumb.asObservable();\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Observable del loading full screen\r\n */\r\n get loadingFullScreen() {\r\n return this._loadingFullScreenObservable$;\r\n }\r\n\r\n /**\r\n * Observable del loading en el breadcrumb\r\n */\r\n\r\n get loadingBreadCrumb() {\r\n return this._loadingBreadCrumbObservable$;\r\n }\r\n\r\n public startFullScreenLoading(): void{\r\n this._loadingFullScreen.next(true);\r\n }\r\n\r\n public endFullScreenLoading(): void {\r\n this._loadingFullScreen.next(false);\r\n }\r\n\r\n public startBreadCrumLoading(): void {\r\n this._loadingBreadCrumb.next(true);\r\n }\r\n\r\n public endBreadCrumLoading(): void {\r\n this._loadingBreadCrumb.next(false);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport type MenuMode = 'static' | 'overlay' | 'horizontal' | 'slim' | 'slim-plus' | 'reveal' | 'drawer';\r\n\r\nexport type ColorScheme = 'light' | 'dark';\r\n\r\nexport interface AppConfig {\r\n inputStyle: string;\r\n colorScheme: ColorScheme;\r\n componentTheme: string;\r\n ripple: boolean;\r\n menuMode: MenuMode;\r\n scale: number;\r\n menuTheme: string;\r\n topbarTheme: string;\r\n menuProfilePosition: string;\r\n}\r\n\r\ninterface LayoutState {\r\n staticMenuMobileActive: boolean;\r\n overlayMenuActive: boolean;\r\n staticMenuDesktopInactive: boolean;\r\n configSidebarVisible: boolean;\r\n menuHoverActive: boolean;\r\n rightMenuActive: boolean;\r\n topbarMenuActive: boolean;\r\n menuProfileActive: boolean;\r\n sidebarActive: boolean;\r\n anchored: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n\r\n config: AppConfig = {\r\n ripple: true,\r\n inputStyle: 'outlined',\r\n menuMode: 'reveal',\r\n colorScheme: 'light',\r\n componentTheme: 'indigo',\r\n scale: 14,\r\n menuTheme: 'light',\r\n topbarTheme: 'indigo',\r\n menuProfilePosition: 'end'\r\n };\r\n\r\n state: LayoutState = {\r\n staticMenuDesktopInactive: false,\r\n overlayMenuActive: false,\r\n configSidebarVisible: false,\r\n staticMenuMobileActive: false,\r\n menuHoverActive: false,\r\n rightMenuActive: false,\r\n topbarMenuActive: false,\r\n menuProfileActive: false,\r\n sidebarActive: false,\r\n anchored: false\r\n };\r\n\r\n private configUpdate = new Subject<AppConfig>();\r\n\r\n private overlayOpen = new Subject<any>();\r\n\r\n private topbarMenuOpen = new Subject<any>();\r\n\r\n private menuProfileOpen = new Subject<any>();\r\n\r\n configUpdate$ = this.configUpdate.asObservable();\r\n\r\n overlayOpen$ = this.overlayOpen.asObservable();\r\n\r\n topbarMenuOpen$ = this.topbarMenuOpen.asObservable();\r\n\r\n menuProfileOpen$ = this.menuProfileOpen.asObservable();\r\n\r\n onMenuToggle() {\r\n if (this.isOverlay()) {\r\n this.state.overlayMenuActive = !this.state.overlayMenuActive;\r\n\r\n if (this.state.overlayMenuActive) {\r\n this.overlayOpen.next(null);\r\n }\r\n }\r\n\r\n if (this.isDesktop()) {\r\n this.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\r\n }\r\n else {\r\n this.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\r\n\r\n if (this.state.staticMenuMobileActive) {\r\n this.overlayOpen.next(null);\r\n }\r\n }\r\n }\r\n\r\n onTopbarMenuToggle() {\r\n this.state.topbarMenuActive = !this.state.topbarMenuActive;\r\n if (this.state.topbarMenuActive) {\r\n this.topbarMenuOpen.next(null);\r\n }\r\n }\r\n\r\n onOverlaySubmenuOpen() {\r\n this.overlayOpen.next(null);\r\n }\r\n\r\n showConfigSidebar() {\r\n this.state.configSidebarVisible = true;\r\n }\r\n\r\n isOverlay() {\r\n return this.config.menuMode === 'overlay';\r\n }\r\n\r\n isDesktop() {\r\n return window.innerWidth > 991;\r\n }\r\n\r\n isSlim() {\r\n return this.config.menuMode === 'slim';\r\n }\r\n\r\n isSlimPlus() {\r\n return this.config.menuMode === 'slim-plus';\r\n }\r\n\r\n isHorizontal() {\r\n return this.config.menuMode === 'horizontal';\r\n }\r\n\r\n isMobile() {\r\n return !this.isDesktop();\r\n }\r\n\r\n onConfigUpdate() {\r\n this.configUpdate.next(this.config);\r\n }\r\n\r\n isRightMenuActive(): boolean {\r\n return this.state.rightMenuActive;\r\n }\r\n\r\n openRightSidebar(): void {\r\n this.state.rightMenuActive = true;\r\n }\r\n\r\n onMenuProfileToggle() {\r\n this.state.menuProfileActive = !this.state.menuProfileActive;\r\n if (this.state.menuProfileActive && this.isHorizontal() && this.isDesktop()) {\r\n this.menuProfileOpen.next(null);\r\n }\r\n }\r\n\r\n replaceThemeLink(href: string, onComplete: Function) {\r\n const id = 'theme-link';\r\n const themeLink = <HTMLLinkElement>document.getElementById(id);\r\n const cloneLinkElement = <HTMLLinkElement>themeLink.cloneNode(true);\r\n\r\n cloneLinkElement.setAttribute('href', href);\r\n cloneLinkElement.setAttribute('id', id + '-clone');\r\n\r\n themeLink.parentNode!.insertBefore(cloneLinkElement, themeLink.nextSibling);\r\n\r\n cloneLinkElement.addEventListener('load', () => {\r\n themeLink.remove();\r\n cloneLinkElement.setAttribute('id', id);\r\n onComplete();\r\n });\r\n }\r\n\r\n onColorSchemeChange(colorScheme: ColorScheme) {\r\n const themeLink = <HTMLLinkElement>document.getElementById('theme-link');\r\n const themeLinkHref = themeLink.getAttribute('href');\r\n const currentColorScheme = 'theme-' + this.config.colorScheme;\r\n const newColorScheme = 'theme-' + colorScheme;\r\n const newHref = themeLinkHref!.replace(currentColorScheme, newColorScheme);\r\n this.replaceThemeLink(newHref, () => {\r\n this.config.colorScheme = colorScheme;\r\n if (colorScheme === 'dark') {\r\n this.config.menuTheme = 'dark';\r\n }\r\n this.onConfigUpdate();\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Component, ElementRef } from '@angular/core';\r\nimport { trigger, transition, style, animate } from '@angular/animations';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { AuthService } from '../core/servicios/auth.service';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-menu-profile',\r\n imports: [TooltipModule, CommonModule],\r\n standalone: true,\r\n templateUrl: './app.menuprofile.component.html',\r\n animations: [\r\n trigger('menu', [\r\n transition('void => inline', [\r\n style({ height: 0 }),\r\n animate('400ms cubic-bezier(0.86, 0, 0.07, 1)', style({ opacity: 1, height: '*' })),\r\n ]),\r\n transition('inline => void', [\r\n animate('400ms cubic-bezier(0.86, 0, 0.07, 1)', style({ opacity: 0, height: '0' }))\r\n ]),\r\n transition('void => overlay', [\r\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\r\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\r\n ]),\r\n transition('overlay => void', [\r\n animate('.1s linear', style({ opacity: 0 }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class AppMenuProfileComponent {\r\n\r\n constructor(public layoutService: LayoutService, public el: ElementRef,\r\n public authService: AuthService) { }\r\n\r\n toggleMenu() {\r\n this.layoutService.onMenuProfileToggle();\r\n }\r\n\r\n get isHorizontal() {\r\n return this.layoutService.isHorizontal() && this.layoutService.isDesktop();\r\n }\r\n\r\n get menuProfileActive(): boolean {\r\n return this.layoutService.state.menuProfileActive;\r\n }\r\n\r\n get menuProfilePosition(): string {\r\n return this.layoutService.config.menuProfilePosition;\r\n }\r\n\r\n get isTooltipDisabled(): boolean {\r\n return !this.layoutService.isSlim();\r\n }\r\n\r\n get nombreUsuario(): string {\r\n return this.authService.getTokenKey('nombreUsuario')\r\n }\r\n}\r\n","<div class=\"layout-menu-profile\">\r\n <button class=\"p-link\" pTooltip=\"Profile\" [tooltipDisabled]=\"isTooltipDisabled\">\r\n <span>\r\n <strong>{{nombreUsuario}}</strong>\r\n </span>\r\n <i class=\"layout-menu-profile-toggler pi pi-fw\" [ngClass]=\"{'pi-user': menuProfilePosition === 'start' || isHorizontal, 'pi-users': menuProfilePosition === 'end' && !isHorizontal}\"></i>\r\n </button>\r\n\r\n <!--<ul *ngIf=\"menuProfileActive\" [@menu]=\"isHorizontal ? 'overlay' : 'inline'\">\r\n <li pTooltip=\"Settings\" [tooltipDisabled]=\"isTooltipDisabled\" [routerLink]=\"['/profile/create']\">\r\n <button class=\"p-link\" [routerLink]=\"['/documentation']\">\r\n <i class=\"pi pi-cog pi-fw\"></i>\r\n <span>Settings</span>\r\n </button>\r\n </li>\r\n <li pTooltip=\"Profile\" [tooltipDisabled]=\"isTooltipDisabled\">\r\n <button class=\"p-link\" [routerLink]=\"['/documentation']\" [routerLink]=\"['/documentation']\">\r\n <i class=\"pi pi-file-o pi-fw\"></i>\r\n <span>Profile</span>\r\n </button>\r\n </li>\r\n <li pTooltip=\"Support\" [tooltipDisabled]=\"isTooltipDisabled\">\r\n <button class=\"p-link\" [routerLink]=\"['/documentation']\">\r\n <i class=\"pi pi-compass pi-fw\"></i>\r\n <span>Support</span>\r\n </button>\r\n </li>\r\n <li pTooltip=\"Logout\" [tooltipDisabled]=\"isTooltipDisabled\" [routerLink]=\"['/auth/login2']\">\r\n <button class=\"p-link\">\r\n <i class=\"pi pi-power-off pi-fw\"></i>\r\n <span>Logout</span>\r\n </button>\r\n </li>\r\n </ul>-->\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MenuChangeEvent } from './api/menuchangeevent';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuService {\r\n\r\n private menuSource = new Subject<MenuChangeEvent>();\r\n private resetSource = new Subject();\r\n\r\n menuSource$ = this.menuSource.asObservable();\r\n resetSource$ = this.resetSource.asObservable();\r\n\r\n onMenuStateChange(event: MenuChangeEvent) {\r\n this.menuSource.next(event);\r\n }\r\n\r\n reset() {\r\n this.resetSource.next(true);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\r\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MenuService } from './app.menu.service';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport {DomHandler} from 'primeng/dom';\r\nimport { UtilsService } from '../core/servicios/utils.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: '[app-menuitem]',\r\n standalone: true,\r\n imports: [CommonModule, RouterModule, TooltipModule],\r\n template: `\r\n\t\t<ng-container>\r\n <div *ngIf=\"root && item.visible !== false\" class=\"layout-menuitem-root-text\">\r\n <span>{{item.label}}</span>\r\n <i class=\"layout-menuitem-root-icon pi pi-fw pi-ellipsis-h\"></i>\r\n </div>\r\n\t\t\t<a *ngIf=\"(!item.routerLink || item.items) && item.visible !== false\" [attr.href]=\"item.url\" (click)=\"itemClick($event)\" (mouseenter)=\"onMouseEnter()\"\r\n\t\t\t [ngClass]=\"item.class\" [attr.target]=\"item.target\" tabindex=\"0\" pRipple [pTooltip]=\"item.label\" [tooltipDisabled]=\"!(isSlim && root && !active)\">\r\n\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\t\t\t\t<span class=\"layout-menuitem-text\">{{item.label}}</span>\r\n\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\r\n\t\t\t</a>\r\n\t\t\t<a *ngIf=\"(item.routerLink && !item.items) && item.visible !== false\" (click)=\"itemClick($event)\" (mouseenter)=\"onMouseEnter()\" [ngClass]=\"item.class\"\r\n\t\t\t [routerLink]=\"'/'+utilsService.obtenerBase()+ (url.toString().includes('admonPortal') ? '/admonPortal' : '') +item.routerLink\" routerLinkActive=\"active-route\" [routerLinkActiveOptions]=\"item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }\"\r\n [fragment]=\"item.fragment\" [queryParamsHandling]=\"item.queryParamsHandling\" [preserveFragment]=\"item.preserveFragment\"\r\n [skipLocationChange]=\"item.skipLocationChange\" [replaceUrl]=\"item.replaceUrl\" [state]=\"item.state\" [queryParams]=\"item.queryParams\"\r\n [attr.target]=\"item.target\" tabindex=\"0\" pRipple [pTooltip]=\"item.label\" [tooltipDisabled]=\"!(isSlim && root)\">\r\n\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\t\t\t\t<span class=\"layout-menuitem-text\">{{item.label}}</span>\r\n\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\r\n\t\t\t</a>\r\n\r\n\t\t\t<ul #submenu *ngIf=\"item.items && item.visible !== false\" [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\r\n\t\t\t\t<ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\r\n\t\t\t\t\t<li app-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child.badgeClass\"></li>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ul>\r\n\t\t</ng-container>\r\n `,\r\n animations: [\r\n trigger('children', [\r\n state('collapsed', style({\r\n height: '0'\r\n })),\r\n state('expanded', style({\r\n height: '*'\r\n })),\r\n state('hidden', style({\r\n display: 'none'\r\n })),\r\n state('visible', style({\r\n display: 'block'\r\n })),\r\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n ])\r\n ]\r\n})\r\nexport class AppMenuitemComponent implements OnInit, OnDestroy {\r\n\r\n @Input() item: any;\r\n\r\n @Input() index!: number;\r\n\r\n @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\r\n\r\n @Input() parentKey!: string;\r\n\r\n @ViewChild('submenu') submenu!: ElementRef;\r\n\r\n active = false;\r\n\r\n menuSourceSubscription: Subscription;\r\n\r\n menuResetSubscription: Subscription;\r\n\r\n key: string = \"\";\r\n\r\n url = window.location.href;\r\n\r\n constructor(public layoutService: LayoutService, private cd: ChangeDetectorRef, public router: Router, private menuService: MenuService, public utilsService: UtilsService) {\r\n this.menuSourceSubscription = this.menuService.menuSource$.subscribe(value => {\r\n Promise.resolve(null).then(() => {\r\n if (value.routeEvent) {\r\n this.active = (value.key === this.key || value.key.startsWith(this.key + '-')) ? true : false;\r\n }\r\n else {\r\n if (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\r\n this.active = false;\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {\r\n this.active = false;\r\n });\r\n\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe(params => {\r\n if (this.isSlimPlus || this.isSlim || this.isHorizontal) {\r\n this.active = false;\r\n }\r\n else {\r\n if (this.item.routerLink) {\r\n this.updateActiveStateFromRoute();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\r\n\r\n if (!(this.isSlimPlus || this.isSlim || this.isHorizontal) && this.item.routerLink) {\r\n this.updateActiveStateFromRoute();\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.root && this.active && this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus())) {\r\n this.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);\r\n }\r\n }\r\n\r\n updateActiveStateFromRoute() {\r\n let activeRoute = this.router.isActive(this.item.routerLink[0], { paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' });\r\n\r\n if (activeRoute) {\r\n this.menuService.onMenuStateChange({key: this.key, routeEvent: true});\r\n }\r\n }\r\n\r\n onSubmenuAnimated(event: AnimationEvent) {\r\n if (event.toState === 'visible' && this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus())) {\r\n const el = <HTMLUListElement> event.element;\r\n const elParent = <HTMLUListElement> el.parentElement;\r\n this.calculatePosition(el, elParent);\r\n }\r\n }\r\n\r\n calculatePosition(overlay: HTMLElement, target: HTMLElement) {\r\n if (overlay) {\r\n const { left, top } = target.getBoundingClientRect();\r\n const [vWidth, vHeight] = [window.innerWidth, window.innerHeight];\r\n const [oWidth, oHeight] = [overlay.offsetWidth, overlay.offsetHeight];\r\n const scrollbarWidth = DomHandler.calculateScrollbarWidth();\r\n const topbarEl = document.querySelector('.layout-topbar') as HTMLElement;\r\n const topbarHeight = topbarEl?.offsetHeight || 0;\r\n // reset\r\n overlay.style.top = '';\r\n overlay.style.left = '';\r\n\r\n if (this.layoutService.isHorizontal()) {\r\n const width = left + oWidth + scrollbarWidth;\r\n overlay.style.left = vWidth < width ? `${left - (width - vWidth)}px` : `${left}px`;\r\n } else if ( this.layoutService.isSlim() || this.layoutService.isSlimPlus()) {\r\n const topOffset = top - topbarHeight;\r\n const height = topOffset + oHeight + topbarHeight;\r\n overlay.style.top = vHeight < height ? `${topOffset - (height - vHeight)}px` : `${topOffset}px`;\r\n }\r\n }\r\n }\r\n\r\n itemClick(event: Event) {\r\n // avoid processing disabled items\r\n if (this.item.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n // navigate with hover\r\n if (this.root && this.isSlim || this.isHorizontal || this.isSlimPlus) {\r\n this.layoutService.state.menuHoverActive = !this.layoutService.state.menuHoverActive;\r\n }\r\n\r\n // execute command\r\n if (this.item.command) {\r\n this.item.command({ originalEvent: event, item: this.item });\r\n }\r\n\r\n // toggle active state\r\n if (this.item.items) {\r\n this.active = !this.active;\r\n\r\n if (this.root && this.active && (this.isSlim || this.isHorizontal || this.isSlimPlus)) {\r\n this.layoutService.onOverlaySubmenuOpen();\r\n }\r\n }\r\n else {\r\n if (this.layoutService.isMobile()) {\r\n this.layoutService.state.staticMenuMobileActive = false;\r\n }\r\n\r\n if (this.isSlim || this.isHorizontal || this.isSlimPlus) {\r\n this.menuService.reset();\r\n this.layoutService.state.menuHoverActive = false;\r\n }\r\n }\r\n\r\n this.menuService.onMenuStateChange({key: this.key});\r\n }\r\n\r\n onMouseEnter() {\r\n // activate item on hover\r\n if (this.root && (this.isSlim || this.isHorizontal || this.isSlimPlus) && this.layoutService.isDesktop()) {\r\n if (this.layoutService.state.menuHoverActive) {\r\n this.active = true;\r\n this.menuService.onMenuStateChange({key: this.key});\r\n }\r\n }\r\n }\r\n\r\n get submenuAnimation() {\r\n if (this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus()))\r\n return this.active ? 'visible' : 'hidden';\r\n else\r\n return this.root ? 'expanded' : (this.active ? 'expanded' : 'collapsed');\r\n }\r\n\r\n get isHorizontal() {\r\n return this.layoutService.isHorizontal();\r\n }\r\n\r\n get isSlim() {\r\n return this.layoutService.isSlim();\r\n }\r\n get isSlimPlus() {\r\n return this.layoutService.isSlimPlus();\r\n }\r\n\r\n @HostBinding('class.active-menuitem')\r\n get activeClass() {\r\n return this.active && !this.root;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.menuSourceSubscription) {\r\n this.menuSourceSubscription.unsubscribe();\r\n }\r\n\r\n if (this.menuResetSubscription) {\r\n this.menuResetSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\nimport { MenuService } from '../core/servicios/menu.service';\r\nimport { UtilsService } from '../core/servicios/utils.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppMenuitemComponent } from './app.menuitem.component';\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n imports: [CommonModule, AppMenuitemComponent],\r\n standalone: true,\r\n templateUrl: './app.menu.component.html'\r\n})\r\nexport class AppMenuComponent implements OnInit {\r\n subcription: Subscription;\r\n model: MenuItem[]\r\n\r\n /**\r\n *\r\n */\r\n constructor(private menuService: MenuService, private utilsService: UtilsService) {\r\n }\r\n\r\n ngOnInit() {\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.model = [{\r\n label: \"Inicio\",\r\n icon: \"pi pi-home\",\r\n routerLink: this.utilsService.obtenerBase() + \"/admonPortal/inicio\",\r\n visible: true,\r\n items: [],\r\n }];\r\n } else {\r\n this.model = [{\r\n label: \"Inicio\",\r\n icon: \"pi pi-home\",\r\n routerLink: this.utilsService.obtenerBase() + \"/inicio\",\r\n visible: true,\r\n items: [],\r\n }];\r\n }\r\n \r\n this.subcription = this.menuService.menu.subscribe((menu) => {\r\n this.model[0].label = menu.label;\r\n this.model[0].items = menu.items;\r\n });\r\n }\r\n}\r\n\r\n","<ul class=\"layout-menu\">\r\n <ng-container *ngFor=\"let item of model; let i = index;\">\r\n <li app-menuitem *ngIf=\"!item.separator\" [item]=\"item\" [index]=\"i\" [root]=\"true\"></li>\r\n <li *ngIf=\"item.separator\" class=\"menu-separator\"></li>\r\n </ng-container>\r\n</ul>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'generalPipe'\r\n})\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralPipe implements PipeTransform {\r\n\r\n ESPACIO_BLANCO = \" \";\r\n ESPACIO_NULO = \"\";\r\n\r\n NO_APLICA = 'N'\r\n NO_APLICA_DESC = 'No Aplica'\r\n\r\n SI = 'S';\r\n NO = 'N';\r\n\r\n SI_DESC = 'Si';\r\n NO_DESC = 'No';\r\n\r\n vertical = \"V\";\r\n desVertical = \"Vertical\";\r\n\r\n horizontal = \"H\";\r\n desHorizontal = \"Horizontal\";\r\n\r\n\r\n ORIENTACION = [\r\n { codigo: this.vertical, nombre: this.desVertical },\r\n { codigo: this.horizontal, nombre: this.desHorizontal },\r\n ]\r\n\r\n LISTA_SINO = [\r\n { codigo: this.SI, nombre: this.SI_DESC },\r\n { codigo: this.NO, nombre: this.NO_DESC }\r\n ]\r\n\r\n\r\n\r\n ESTADO_PROCESO = 'P';\r\n ESTADO_PUNTO = '.'\r\n ESTADO_SELECCION_DESC = '--Seleccionar--';\r\n ESTADO_ACTIVO_DES = 'Activo';\r\n ESTADO_INACTIVO_DESC = 'Inactivo'\r\n ESTADO_PROCESO_DESC = 'En proceso';\r\n A_TILDE_MIN= \"\\u00E1\";\r\n\tE_TILDE_MIN= \"\\u00E9\";\r\n\tI_TILDE_MIN= \"\\u00ED\";\r\n\tO_TIDLE_MIN= \"\\u00F3\";\r\n\tU_TILDE_MIN= \"\\u00FA\";\r\n\tA_TILDE_MAY= \"\\u00C1\";\r\n\tE_TILDE_MAY= \"\\u00C9\";\r\n\tI_TILDE_MAY= \"\\u00CD\";\r\n\tO_TILDE_MAY= \"\\u00D3\";\r\n\tU_TILDE_MAY= \"\\u00DA\";\r\n\tN_TILDE_MAY= \"\\u00D1\";\r\n\tN_TILDE_MIN= \"\\u00F1\";\r\n U = \"U\"\r\n\r\n LISTA_ESTADO_SN = [\r\n { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\r\n { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\r\n { codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_PROCESO_DESC }\r\n ]\r\n // Tipos Anexi\r\n TIPOS_ANEXO_LIMITADO = [\r\n { codigo: this.NO, nombre: \"No solicitar\" },\r\n { codigo: this.U, nombre: this.U_TILDE_MAY + \"nico anexo\" },\r\n\r\n ]\r\n\r\n LISTA_SELECIONAR_MAP = [\r\n { codigo: this.SI, nombre: this.SI_DESC },\r\n { codigo: this.NO, nombre: this.NO_DESC },\r\n\r\n ]\r\n\r\n\r\n MAS = \"+\";\r\n MENOS = \"-\";\r\n BARRA_PISO = \"_\";\r\n MONTO = \"MONTO\";\r\n FECHA_1 = \"FECHA1\";\r\n FECHA_2 = \"FECHA2\";\r\n FECHA_3 = \"FECHA3\";\r\n ciclo = \"CICLO\";\r\n COMPROBANTE = \"COMPROB\";\r\n restringe = \"RESTRINGE\";\r\n actividad = \"ACTIVIDAD\";\r\n ABONOPENSI = \"ABONOPENSI\";\r\n\r\n estados = {\r\n S: 'Activo',\r\n P: 'En proceso',\r\n N: 'Inactivo'\r\n }\r\n listaEstados = {\r\n S: 'Activo',\r\n Punto: 'En proceso',\r\n N: 'Inactivo'\r\n }\r\n LISTA_ESTADO = [\r\n { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\r\n { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\r\n { codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_SELECCION_DESC }\r\n ]\r\n\r\n ////// PARAMETROS DE COMPENSACION\r\n PADRE = \"P\";\r\n HIJO = \"H\";\r\n\r\n CONCEPTO_VIGENTE = 'VIGENTE'\r\n CONCEPTO_NOVIGENTE = 'NO VIGENTE'\r\n\r\n LISTADO_ESTADO_CONCEPTO = [\r\n { codigo: this.SI, nombre: this.CONCEPTO_VIGENTE },\r\n { codigo: this.NO, nombre: this.CONCEPTO_NOVIGENTE }\r\n ]\r\n\r\n FORMULA_GENERAL = 'G'\r\n FORMULA = 'F'\r\n FORMULA_BENEFICIARIO = 'B'\r\n FORMULA_VALOR_FIJO = 'M'\r\n VALOR_FIJO = 'V'\r\n\r\n FORMULA_GENERAL_DESC = 'Formula General'\r\n FORMULA_DESC = 'Formula'\r\n FORMULA_BENEFICIARIO_DESC = 'Formula Beneficiario'\r\n FORMULA_VALOR_FIJO_DESC = 'Formula Valor Fijo'\r\n VALOR_FIJO_DESC = 'Valor Fijo'\r\n\r\n LISTADO_FORMULA = [\r\n { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\r\n { codigo: this.FORMULA, nombre: this.FORMULA_DESC },\r\n { codigo: this.FORMULA_BENEFICIARIO, nombre: this.FORMULA_BENEFICIARIO_DESC },\r\n { codigo: this.FORMULA_VALOR_FIJO, nombre: this.FORMULA_VALOR_FIJO_DESC },\r\n { codigo: this.VALOR_FIJO, nombre: this.VALOR_FIJO_DESC },\r\n ]\r\n\r\n CONCEPTO_DEVENGO = '+'\r\n CONCEPTO_DEDUCCION = '-'\r\n\r\n CONCEPTO_DEVENGO_DESC = 'DEVENGO'\r\n CONCEPTO_DEDUCCION_DESC = 'DEDUCCION'\r\n\r\n LISTADO_NATURALEZA_CONCEPTO = [\r\n { codigo: this.CONCEPTO_DEVENGO, nombre: this.CONCEPTO_DEVENGO_DESC },\r\n { codigo: this.CONCEPTO_DEDUCCION, nombre: this.CONCEPTO_DEDUCCION_DESC },\r\n ]\r\n\r\n REDONDEO_CERO_DECIMALES = 'S'\r\n REDONDEO_UN_DECIMAL = '1'\r\n REDONDEO_DOS_DECIMALES = '2'\r\n\r\n REDONDEO_CERO_DECIMALES_DESC = '0 DECIMALES'\r\n REDONDEO_UN_DECIMAL_DESC = '1 DECIMAL'\r\n REDONDEO_DOS_DECIMALES_DESC = '2 DECIMALES'\r\n\r\n\r\n LISTA_REDONDEO_CONCEPTO = [\r\n { codigo: this.REDONDEO_CERO_DECIMALES, nombre: this.REDONDEO_CERO_DECIMALES_DESC },\r\n { codigo: this.REDONDEO_UN_DECIMAL, nombre: this.REDONDEO_UN_DECIMAL_DESC },\r\n { codigo: this.REDONDEO_DOS_DECIMALES, nombre: this.REDONDEO_DOS_DECIMALES_DESC },\r\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\r\n ]\r\n\r\n CAMBIO_ASIGNACION_CONCEPTO = 'S'\r\n CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO = 'A'\r\n CAMBIO_ROL_CONCEPTO = 'R'\r\n CAMBIO_TEMPORAL_CONCEPTO = 'T'\r\n\r\n\r\n CAMBIO_ASIGNACION_CONCEPTO_DES = 'Cambio Asignacion'\r\n CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES = 'Cambio Asignacion/Temporal'\r\n CAMBIO_ROL_CONCEPTO_DES = 'Cambio Rol'\r\n CAMBIO_TEMPORAL_CONCEPTO_DES = 'Cambio Temporal'\r\n\r\n\r\n LISTA_CAMBIO_CONCEPTO = [\r\n { codigo: this.CAMBIO_ASIGNACION_CONCEPTO, nombre: this.CAMBIO_ASIGNACION_CONCEPTO_DES },\r\n { codigo: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO, nombre: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES },\r\n { codigo: this.CAMBIO_ROL_CONCEPTO, nombre: this.CAMBIO_ROL_CONCEPTO_DES },\r\n { codigo: this.CAMBIO_TEMPORAL_CONCEPTO, nombre: this.CAMBIO_TEMPORAL_CONCEPTO_DES },\r\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\r\n ]\r\n\r\n AJUSTE_PARCIAL_CONCEPTO = 'P'\r\n AJUSTE_TOTAL_CONCEPTO = 'T'\r\n\r\n AJUSTE_PARCIAL_CONCEPTO_DESC = 'PARCIAL'\r\n AJUSTE_TOTAL_CONCEPTO_DESC = 'TOTAL'\r\n\r\n LISTA_TIPOAJUSTE_CONCEPTO = [\r\n { codigo: this.AJUSTE_PARCIAL_CONCEPTO, nombre: this.AJUSTE_PARCIAL_CONCEPTO_DESC },\r\n { codigo: this.AJUSTE_TOTAL_CONCEPTO, nombre: this.AJUSTE_TOTAL_CONCEPTO_DESC }\r\n ]\r\n\r\n\r\n\r\n FLEXIBLE_BENEFICIO_CONCEPTO = 'F'\r\n FLEXIBLE_BENEFICIOADI_CONCEPTO = 'A'\r\n FLEXIBLE_CRUCE_CONCEPTO = 'C'\r\n\r\n\r\n FLEXIBLE_BENEFICIO_CONCEPTO_DESC = 'BENEFICIO'\r\n FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC = 'BENEFICIO ADICIONAL'\r\n FLEXIBLE_CRUCE_CONCEPTO_DESC = 'BENEFICIO CRUCE'\r\n\r\n\r\n LISTA_FLEXIBLE_CONCEPTO = [\r\n { codigo: this.FLEXIBLE_BENEFICIO_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIO_CONCEPTO_DESC },\r\n { codigo: this.FLEXIBLE_BENEFICIOADI_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC },\r\n { codigo: this.FLEXIBLE_CRUCE_CONCEPTO, nombre: this.FLEXIBLE_CRUCE_CONCEPTO_DESC },\r\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\r\n ]\r\n // dsfd\r\n FINALIN = 'P'\r\n PARCIAL = 'T'\r\n\r\n FINAL_DESC = 'PARCIAL'\r\n PARCIAL_DESC = 'TOTAL'\r\n\r\n LISTA_INFORME = [\r\n { codigo: this.FINALIN, nombre: this.FINAL_DESC },\r\n { codigo: this.PARCIAL, nombre: this.PARCIAL_DESC }\r\n ]\r\n\r\n // kkk\r\n CONTRATOPRINCIPAL = 'contratoprincipal';\r\n BASECOTIZACION = 'formulaibc';\r\n UNIFICACIONSEGURIDAD = 'formulassunif';\r\n INTERESCUOTAPARTE = 'interescuotaparte';\r\n FORMULADISTRIBUIR = 'formuladistribuir';\r\n JORNADADOCENTE = 'formulajor';\r\n AJUSTENOMINA = 'formulaajuste';\r\n DESCUENTOFIJO = 'conceptofijos';\r\n PENSIONDISTRIBUYE = 'pensiondistribuye';\r\n PUESTOTRABAJO = 'puestotrabajo';\r\n SEGURIDADSOCIAL = 'seguridadsocial';\r\n VIATICO = 'viatico';\r\n NOMINA = 'nomina';\r\n CONCEPTOTIEMPOS = 'conceptotiempo';\r\n GENERACIONINTERFAZ = 'generacioninterfaz';\r\n REGISTROAUSENCIA = 'registroausencia';\r\n INTERRUPCIONAUSENCIA = 'interrupcionausencia';\r\n NOVEDAD = 'novedad';\r\n CONTROLLIQPERIODICA = 'controlliqperiodica';\r\n BENEFICIO = 'beneficio';\r\n SERVICIOENTIDAD = 'servicioentidad';\r\n SOLICITUDCREDITO = 'solicitudcredito';\r\n CUOTACREDITO = 'cuotacredito';\r\n TABLAAMORTIZACION = 'tablaamortizacion';\r\n EVALUACION = 'evaluacion';\r\n ACTOADMINISTRATIVO = 'actoadministrativo';\r\n FACTORPUNTAJE = 'factorpuntaje';\r\n PLANSUCESION = 'plansucesion';\r\n AJUSTEHISTORICO = 'ajustehistorico';\r\n AJUSTEVARIABLE = 'incrementovariable';\r\n NOMINALELECTRONICA = 'nominaelectronica';\r\n NOMINALELECTRONICACON = 'nominaelectronicacon';\r\n NOMINALELECTRONICAINI = 'nominaelectronicaini';\r\n NOMINALELECTRONICANET = 'nominaelectronicanet';\r\n\r\n BASECOTIZACION_DESC = 'Ingreso Base de Cotizacion (ANTES)';\r\n CONTRATOPRINCIPAL_DESC = 'Calculo Contrato Principal';\r\n UNIFICACIONSEGURIDAD_DESC = 'Unificacion Seguridad Social (ANTES)';\r\n INTERESCUOTAPARTE_DESC = 'Interes Cuota Parte';\r\n FORMULADISTRIBUIR_DESC = 'Distribucion Abono en Cuenta';\r\n JORNADADOCENTE_DESC = 'Jornada Docente';\r\n AJUSTENOMINA_DESC = 'Ajuste de Nomina';\r\n DESCUENTOFIJO_DESC = 'Conceptos Fijos de Nomina';\r\n PENSIONDISTRIBUYE_DESC = 'Distribucion Pension';\r\n PUESTOTRABAJO_DESC = 'Puesto de trabajo';\r\n SEGURIDADSOCIAL_DESC = 'Seguridad Social';\r\n VIATICO_DESC = 'Programacion de viaticos';\r\n NOMINA_DESC = 'Nomina';\r\n GENERACIONINTERFAZ_DESC = 'Generacion Interfaz';\r\n REGISTROAUSENCIA_DESC = 'Registro Ausencia';\r\n INTERRUPCIONAUSENCIA_DESC = 'Interrupcion Ausencia';\r\n NOVEDAD_DESC = 'Novedad';\r\n CONTROLLIQPERIODICA_DESC = 'Control Prestamos/Embargos';\r\n BENEFICIO_DESC = 'Beneficio';\r\n SERVICIOENTIDAD_DESC = 'Servicio Entidad';\r\n SOLICITUDCREDITO_DESC = 'Solicitud de Credito';\r\n CUOTACREDITO_DESC = 'Aplicacion Cuota Credito';\r\n TABLAAMORTIZACION_DESC = 'Tabla de amortizacion';\r\n EVALUACION_DESC = 'Herrarmientas de Gestion';\r\n ACTOADMINISTRATIVO_DESC = 'Actos Administrativos';\r\n FACTORPUNTAJE_DESC = 'Factor Puntaje';\r\n PLANSUCESION_DESC = 'Plan de Sucesion';\r\n CONCEPTOTIEMPOS_DESC = 'Conceptos de Tiempos';\r\n AJUSTEHISTORICO_DESC = 'Ajuste Historico Periodo de Vacaciones';\r\n AJUSTEVARIABLE_DESC = 'Ajuste de Variable';\r\n NOMINALELECTRONICA_DESC = 'Nomina Electronica - Empleado';\r\n NOMINALELECTRONICACON_DESC = 'Nomina Electronica - Conceptos';\r\n NOMINALELECTRONICAINI_DESC = 'Nomina Electronica - Inicial';\r\n NOMINALELECTRONICANET_DESC = 'Nomina Electronica - Neto Pagos';\r\n\r\n\r\n LISTA_TIPOFORMULA = [\r\n { codigo: this.CONTRATOPRINCIPAL, nombre: this.CONTRATOPRINCIPAL_DESC },\r\n { codigo: this.BASECOTIZACION, nombre: this.BASECOTIZACION_DESC },\r\n { codigo: this.UNIFICACIONSEGURIDAD, nombre: this.UNIFICACIONSEGURIDAD_DESC },\r\n { codigo: this.INTERESCUOTAPARTE, nombre: this.INTERESCUOTAPARTE_DESC },\r\n { codigo: this.FORMULADISTRIBUIR, nombre: this.FORMULADISTRIBUIR_DESC },\r\n { codigo: this.JORNADADOCENTE, nombre: this.JORNADADOCENTE_DESC },\r\n { codigo: this.AJUSTENOMINA, nombre: this.AJUSTENOMINA_DESC },\r\n { codigo: this.DESCUENTOFIJO, nombre: this.DESCUENTOFIJO_DESC },\r\n { codigo: this.PENSIONDISTRIBUYE, nombre: this.PENSIONDISTRIBUYE_DESC },\r\n { codigo: this.PUESTOTRABAJO, nombre: this.PUESTOTRABAJO_DESC },\r\n { codigo: this.SEGURIDADSOCIAL, nombre: this.SEGURIDADSOCIAL_DESC },\r\n { codigo: this.VIATICO, nombre: this.VIATICO_DESC },\r\n { codigo: this.NOMINA, nombre: this.NOMINA_DESC },\r\n { codigo: this.CONCEPTOTIEMPOS, nombre: this.CONCEPTOTIEMPOS_DESC },\r\n { codigo: this.GENERACIONINTERFAZ, nombre: this.GENERACIONINTERFAZ_DESC },\r\n { codigo: this.REGISTROAUSENCIA, nombre: this.REGISTROAUSENCIA_DESC },\r\n { codigo: this.INTERRUPCIONAUSENCIA, nombre: this.INTERRUPCIONAUSENCIA_DESC },\r\n { codigo: this.NOVEDAD, nombre: this.NOVEDAD_DESC },\r\n { codigo: this.CONTROLLIQPERIODICA, nombre: this.CONTROLLIQPERIODICA_DESC },\r\n { codigo: this.BENEFICIO, nombre: this.BENEFICIO_DESC },\r\n { codigo: this.SERVICIOENTIDAD, nombre: this.SERVICIOENTIDAD_DESC },\r\n { codigo: this.SOLICITUDCREDITO, nombre: this.SOLICITUDCREDITO_DESC },\r\n { codigo: this.CUOTACREDITO, nombre: this.CUOTACREDITO_DESC },\r\n { codigo: this.TABLAAMORTIZACION, nombre: this.TABLAAMORTIZACION_DESC },\r\n { codigo: this.EVALUACION, nombre: this.EVALUACION_DESC },\r\n { codigo: this.ACTOADMINISTRATIVO, nombre: this.ACTOADMINISTRATIVO_DESC },\r\n { codigo: this.FACTORPUNTAJE, nombre: this.FACTORPUNTAJE_DESC },\r\n { codigo: this.PLANSUCESION, nombre: this.PLANSUCESION_DESC },\r\n { codigo: this.AJUSTEHISTORICO, nombre: this.AJUSTEHISTORICO_DESC },\r\n { codigo: this.AJUSTEVARIABLE, nombre: this.AJUSTEVARIABLE_DESC },\r\n { codigo: this.NOMINALELECTRONICA, nombre: this.NOMINALELECTRONICA_DESC },\r\n { codigo: this.NOMINALELECTRONICACON, nombre: this.NOMINALELECTRONICACON_DESC },\r\n { codigo: this.NOMINALELECTRONICAINI, nombre: this.NOMINALELECTRONICAINI_DESC },\r\n { codigo: this.NOMINALELECTRONICANET, nombre: this.NOMINALELECTRONICANET_DESC },\r\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\r\n ]\r\n\r\n /* VARIABLE / TIPO */\r\n\r\n FECHA = \"F\";\r\n HORA = \"H\";\r\n\r\n NUMERODES = \"N\\u00DAMERO\";\r\n FECHADES = \"FECHA\";\r\n HORADES = \"HORA\";\r\n\r\n LISTATIPO = [\r\n { codigo: this.NO, nombre: this.NUMERODES },\r\n { codigo: this.FECHA, nombre: this.FECHADES },\r\n { codigo: this.HORA, nombre: this.HORADES }\r\n ]\r\n\r\n INICIOANO = \"A\";\r\n FINANO = \"O\";\r\n INICIOMES = \"M\";\r\n FINMES = \"S\";\r\n LIBRE = \"N\";\r\n\r\n DESINICIOANO = \"INICIO A\\u00D1O\";\r\n DESFINANO = \"FIN A\\u00D1O\";\r\n DESINICIOMES = \"INICIO MES\";\r\n DESFINMES = \"FIN MES\";\r\n DESLIBRE = \"LIBRE\";\r\n\r\n TIPOVIGENCIA = [\r\n { codigo: this.INICIOANO, nombre: this.DESINICIOANO },\r\n { codigo: this.FINANO, nombre: this.DESFINANO },\r\n { codigo: this.INICIOMES, nombre: this.DESINICIOMES },\r\n { codigo: this.FINMES, nombre: this.DESFINMES },\r\n { codigo: this.LIBRE, nombre: this.DESLIBRE },\r\n ]\r\n\r\n // Constantes Dropdawn Tipo\r\n\r\n MARCADOR = 'M';\r\n MARCADORREGISTRO = 'MR';\r\n MARCADORTABLA = 'TB';\r\n MARCADORIMAGEN = 'MI';\r\n IMAGEN = 'IM';\r\n MARCADORQR = 'QR';\r\n\r\n\r\n DESMARCADOR = 'Marcador';\r\n DESMARCADORREGISTRO = 'Marcador Registro';\r\n DESMARCADORTABLA = 'Tabla';\r\n DESIMAGEN = 'imagen'\r\n DESMARCADORIMAGEN = 'Marcador Imagen';\r\n DESMARCADORQR = \"Imagen QR\";\r\n\r\n\r\n MARCADORES = [\r\n { codigo: this.IMAGEN, nombre: this.DESIMAGEN },\r\n { codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\r\n { codigo: this.MARCADOR, nombre: this.DESMARCADOR },\r\n { codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\r\n { codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\r\n { codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\r\n ]\r\n\r\n\r\n\r\n // Constantes dropdown TipoCampo\r\n\r\n CARGO = 'cargo';\r\n CARGO_MULTI = 'cargo_multiples';\r\n CCATEGORIA = 'categoria';\r\n CIUDAD = 'ciudad';\r\n CLASIFICACION = 'clasificacion';\r\n EDAD = 'edad';\r\n EMPRESA = 'empresa';\r\n ESTADO_CIVIL = 'estadocivil';\r\n ESTADOLABORAL = 'estadoeml';\r\n GENERO = 'sexo';\r\n GRUPO = 'grupoempleado';\r\n NIVEL_DEL_CARGO = 'nivelcargo';\r\n RANGO_DE_SUELDO = 'sueldobasico';\r\n ROLCLASIFICACION = 'rolclasificacion';\r\n TIEMPO_DE_ANTIGUEDAD_CARGO = 'antiguedadcargoact';\r\n TIEMPO_DE_ANTIGUEDAD = 'antiguedad';\r\n TIPO_DE_PERIODO = 'tipoperiodo';\r\n TIPO_DE_VINCULACION = 'vinculacion';\r\n UNIDAD = 'unidad';\r\n UNIDAD_MULTI = 'unidad_multiple';\r\n UNIDAD_RELACION = 'unidadrelacion';\r\n\r\n\r\n\r\n DESCARGO = 'Cargo';\r\n DESCARGO_MULTI = 'Cargos Multiples';\r\n DESCATEGORIA = 'Categoria';\r\n DESCIUDAD = 'Ciudad';\r\n DESCLASIFICACION = 'Clasificacion';\r\n DESEDAD = 'Edad';\r\n DESEMPRESA = 'Empresa';\r\n DESESTADO_CIVIL = 'Estado Civil';\r\n DESESTADOLABORAL = 'Estado Laboral';\r\n DESGENERO = 'Genero';\r\n DESGRUPO = 'Grupo Empleado';\r\n DESNIVEL_DEL_CARGO = 'Nivel del Cargo';\r\n DESRANGO_DE_SUELDO = 'Rango de Sueldo';\r\n DESROLCLASIFICACION = 'Rol Clasificacion';\r\n DESTIEMPO_DE_ANTIGUEDAD_CARGO = 'Tiempo de Antiguedad Cargo Actual';\r\n DESTIEMPO_DE_ANTIGUEDAD = 'Tiempo de Antiguedad Empresa';\r\n DESTIPO_DE_PERIODO = 'Tipo de Periodo';\r\n DESTIPO_DE_VINCULACION = 'Tipo de Vinculacion';\r\n DESUNIDAD = 'Unidad Organizacional';\r\n DESUNIDAD_MULTI = 'Unidades Organizacionales Multiples';\r\n DESUNIDAD_RELACION = 'Unidades Organizacionales y las que dependen';\r\n\r\n\r\n TIPOCAMPO = [\r\n { codigo: this.CARGO, nombre: this.DESCARGO },\r\n { codigo: this.CARGO_MULTI, nombre: this.DESCARGO_MULTI },\r\n { codigo: this.CCATEGORIA, nombre: this.DESCATEGORIA },\r\n { codigo: this.CIUDAD, nombre: this.DESCIUDAD },\r\n { codigo: this.CLASIFICACION, nombre: this.DESCLASIFICACION },\r\n { codigo: this.EDAD, nombre: this.DESEDAD },\r\n { codigo: this.EMPRESA, nombre: this.DESEMPRESA },\r\n { codigo: this.ESTADO_CIVIL, nombre: this.DESESTADO_CIVIL },\r\n { codigo: this.ESTADOLABORAL, nombre: this.DESESTADOLABORAL },\r\n { codigo: this.GENERO, nombre: this.DESGENERO },\r\n { codigo: this.GRUPO, nombre: this.DESGRUPO },\r\n { codigo: this.NIVEL_DEL_CARGO, nombre: this.DESNIVEL_DEL_CARGO },\r\n { codigo: this.RANGO_DE_SUELDO, nombre: this.DESRANGO_DE_SUELDO },\r\n { codigo: this.ROLCLASIFICACION, nombre: this.DESROLCLASIFICACION },\r\n { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGO, nombre: this.DESTIEMPO_DE_ANTIGUEDAD_CARGO },\r\n { codigo: this.TIEMPO_DE_ANTIGUEDAD, nombre: this.DESTIEMPO_DE_ANTIGUEDAD },\r\n { codigo: this.TIPO_DE_PERIODO, nombre: this.DESTIPO_DE_PERIODO },\r\n { codigo: this.TIPO_DE_VINCULACION, nombre: this.DESTIPO_DE_VINCULACION },\r\n { codigo: this.UNIDAD, nombre: this.DESUNIDAD },\r\n { codigo: this.UNIDAD_MULTI, nombre: this.DESUNIDAD_MULTI },\r\n { codigo: this.UNIDAD_RELACION, nombre: this.DESUNIDAD_RELACION },\r\n\r\n\r\n ]\r\n\r\n // Constantes dropdown EjecucionReporte\r\n\r\n PERMITE_EJECUTAR = 'E';\r\n PERMITE_MODIFICAR = 'M';\r\n\r\n PERMITE_EJECUTAR_DESC = 'Permite Ejecutar';\r\n PERMITE_MODIFICAR_DESC = 'Permite Modificar/Ejecutar';\r\n\r\n\r\n\r\n TIPOEJECUCIONREPORTE = [\r\n { codigo: this.PERMITE_EJECUTAR, nombre: this.PERMITE_EJECUTAR_DESC },\r\n { codigo: this.PERMITE_MODIFICAR, nombre: this.PERMITE_MODIFICAR_DESC },\r\n ]\r\n\r\n // Constantes dropdown DiseñoReporte\r\n\r\n NO_ACTUALIZA = 'N';\r\n PERMITE_ACTUALIZAR = 'S';\r\n\r\n NO_ACTUALIZA_DESC = 'No Actualiza';\r\n PERMITE_ACTUALIZAR_DESC = 'Permite Actualizar';\r\n\r\n\r\n\r\n DISENOREPORTE = [\r\n { codigo: this.NO_ACTUALIZA, nombre: this.NO_ACTUALIZA_DESC },\r\n { codigo: this.PERMITE_ACTUALIZAR, nombre: this.PERMITE_ACTUALIZAR_DESC },\r\n ]\r\n\r\n // Constantes PERMISOS LOGIN\r\n\r\n\r\n PERMISO_POR_LLAVE_TABLA = \"OT\";\r\n PERMISO_PERIODO = 'PE';\r\n PERMISO_SITIO = 'ST';\r\n PERMISO_DISENO_REPORTE = 'DR';\r\n PERMISO_AUSENTISMOS = \"TA\";\r\n PERMISO_NOVEDAD = \"TN\";\r\n PERMISO_EJECUCION_REPORTE = \"RF\"\r\n PERMISO_FUENTE_REPORTE = \"FD\";\r\n PERMISO_IMPORTAR_FUENTE = \"IF\";\r\n PERMISO_FACTOR_PUNTAJE = \"FP\";\r\n PERMISO_USUARIO_FORMATO = \"UF\";\r\n\r\n PERMISO_PERIODO_DESC = 'Periodo';\r\n PERMISO_SITIO_DESC = 'Sitio';\r\n PERMISO_DISENO_REPORTE_DESC = 'Diseño Reporte';\r\n PERMISO_AUSENTISMOS_DESC = \"Ausentismo\";\r\n PERMISO_NOVEDAD_DESC = \"Novedad\";\r\n PERMISO_EJECUCION_REPORTE_DESC = \"Ejecucion Reporte\";\r\n PERMISO_FUENTE_REPORTE_DESC = \"Fuente Reporte\";\r\n PERMISO_IMPORTAR_FUENTE_DESC = \"Importar Fuente\";\r\n PERMISO_FACTOR_PUNTAJE_DESC = \"Factor Puntaje\";\r\n PERMISO_USUARIO_FORMATO_DESC = \"Usuario Formato\";\r\n\r\n LISTAPERMISOSLOGIN = [\r\n { codigo: this.PERMISO_PERIODO, nombre: this.PERMISO_PERIODO_DESC },\r\n { codigo: this.PERMISO_SITIO, nombre: this.PERMISO_SITIO_DESC },\r\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\r\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC },\r\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC },\r\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC },\r\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC },\r\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC },\r\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC },\r\n { codigo: this.PERMISO_USUARIO_FORMATO, nombre: this.PERMISO_USUARIO_FORMATO_DESC },\r\n\r\n\r\n ]\r\n\r\n // Constantes PERMISOS ROL\r\n\r\n\r\n PERMISO_TIPO_SOLICITUD = \"TV\";\r\n PERMISO_REPORTE_GENERADO = 'RG';\r\n PERMISO_ZONA_ECONOMICA = 'ZO';\r\n PERMISO_UNIDAD = 'UN';\r\n PERMISO_SECCION_HOJA_VIDA = \"HV\";\r\n PERMISO_ETAPA = \"ET\";\r\n PERMISO_TIPO_PLANTA = \"TP\"\r\n PERMISO_DESCRIPCION_CARGO = \"DC\";\r\n PERMISO_GESTION_HERRAMIENTAS = \"GH\";\r\n PERMISO_TIPO_SERVICIO = \"TS\";\r\n\r\n PERMISO_TIPO_SOLICITUD_DESC = 'Tipo Solicitud';\r\n PERMISO_REPORTE_GENERADO_DESC = 'Reporte Generado';\r\n PERMISO_ZONA_ECONOMICA_DESC = 'Zona Economic';\r\n PERMISO_UNIDAD_DESC = \"PERMISO_UNIDAD_DESC\";\r\n PERMISO_SECCION_HOJA_VIDA_DESC = \"Seccion Hoja Vida\";\r\n PERMISO_ETAPA_DESC = \"Etapa\";\r\n PERMISO_TIPO_PLANTA_DESC = \"Tipo Planta\";\r\n PERMISO_DESCRIPCION_CARGO_DESC = \"Descripcion Cargo\";\r\n PERMISO_GESTION_HERRAMIENTAS_DESC = \"Gestion Herramientas\";\r\n PERMISO_TIPO_SERVICIO_DESC = \"Tipo Servicio\";\r\n\r\n LISTAPERMISOSROL = [\r\n { codigo: this.PERMISO_TIPO_SOLICITUD, nombre: this.PERMISO_TIPO_SOLICITUD_DESC },\r\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC },\r\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC },\r\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC },\r\n { codigo: this.PERMISO_REPORTE_GENERADO, nombre: this.PERMISO_REPORTE_GENERADO_DESC },\r\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\r\n { codigo: this.PERMISO_ZONA_ECONOMICA, nombre: this.PERMISO_ZONA_ECONOMICA_DESC },\r\n { codigo: this.PERMISO_UNIDAD, nombre: this.PERMISO_UNIDAD_DESC },\r\n { codigo: this.PERMISO_SECCION_HOJA_VIDA, nombre: this.PERMISO_SECCION_HOJA_VIDA_DESC },\r\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC },\r\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC },\r\n { codigo: this.PERMISO_ETAPA, nombre: this.PERMISO_ETAPA_DESC },\r\n { codigo: this.PERMISO_TIPO_PLANTA, nombre: this.PERMISO_TIPO_PLANTA_DESC },\r\n { codigo: this.PERMISO_DESCRIPCION_CARGO, nombre: this.PERMISO_DESCRIPCION_CARGO_DESC },\r\n { codigo: this.PERMISO_GESTION_HERRAMIENTAS, nombre: this.PERMISO_GESTION_HERRAMIENTAS_DESC },\r\n { codigo: this.PERMISO_TIPO_SERVICIO, nombre: this.PERMISO_TIPO_SERVICIO_DESC },\r\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC },\r\n\r\n\r\n\r\n\r\n ]\r\n\r\n\r\n\r\n // Constantes dropdown Genero\r\n MASCULINO = 'M';\r\n FEMENINO = 'F';\r\n TRANSGENERO = 'T';\r\n\r\n MASCULINO_DESC = 'MASCULINO';\r\n FEMENINO_DESC = 'FEMENINO';\r\n TRANSGENERO_DESC = 'TRANSGÉNERO';\r\n\r\n SGENERO = [\r\n { codigo: this.MASCULINO, nombre: this.MASCULINO_DESC },\r\n { codigo: this.FEMENINO, nombre: this.FEMENINO_DESC },\r\n { codigo: this.TRANSGENERO, nombre: this.TRANSGENERO_DESC },\r\n\r\n\r\n ]\r\n\r\n // Constantes Recurso Grafica\r\n\r\n SERIE = 'S';\r\n CATEGORIA = 'C';\r\n VALOR = 'V';\r\n\r\n SERIE_STRING = 'Serie';\r\n CATEGORIA_STRING = 'Categoria';\r\n VALOR_STRING = 'Valor';\r\n\r\n Rgrafica = [\r\n { codigo: this.SERIE, nombre: this.SERIE_STRING },\r\n { codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\r\n { codigo: this.VALOR, nombre: this.VALOR_STRING },\r\n { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\r\n ]\r\n\r\n\r\n //Constantes Operador\r\n\r\n igual = '=';\r\n mayorQue = '>';\r\n mayorIgual = '>=';\r\n menor = '<';\r\n menorIgual = '<=';\r\n diferente = '<>';\r\n inclusion = 'IN';\r\n como = 'like'\r\n\r\n desIgual = 'igual';\r\n desMayorQue = 'mayor que';\r\n desMayorIgual = 'mayor o igual';\r\n desMenor = 'menor';\r\n desMenorIgual = 'menor o igual';\r\n desDiferente = 'diferente';\r\n desInclusion = 'inclusi\\u00F3n';\r\n desComo = 'como'\r\n\r\n\r\n Roperador = [\r\n { codigo: this.igual, nombre: this.desIgual },\r\n { codigo: this.mayorQue, nombre: this.desMayorQue },\r\n { codigo: this.mayorIgual, nombre: this.desMayorIgual },\r\n { codigo: this.menor, nombre: this.desMenor },\r\n { codigo: this.menorIgual, nombre: this.desMenorIgual },\r\n { codigo: this.diferente, nombre: this.desDiferente },\r\n { codigo: this.inclusion, nombre: this.desInclusion },\r\n { codigo: this.como, nombre: this.desComo },\r\n ]\r\n\r\n\r\n //COntantes copiar permisos\r\n COPIAR_DIFERENCIA = 'CD';\r\n COPIAR_TODO = 'CT';\r\n\r\n COPIAR_DIFERENCIA_DESC = 'Copiar Diferencias';\r\n COPIAR_TODO_DESC = '\"Borrar Permisos Actuales y Copiar Todo';\r\n\r\n LISTA_TIPO_COPIAS = [\r\n { codigo: this.COPIAR_DIFERENCIA, nombre: this.COPIAR_DIFERENCIA_DESC },\r\n { codigo: this.COPIAR_TODO, nombre: this.COPIAR_TODO_DESC },\r\n\r\n ]\r\n\r\n\r\n\r\n //Constantes Tipo\r\n\r\n DATO = 'D';\r\n CAMPO = 'C';\r\n\r\n CAMPO_STRING = 'Campo';\r\n DATO_STRING = 'Dato';\r\n\r\n ListaTipo = [\r\n { codigo: this.DATO, nombre: this.DATO_STRING },\r\n { codigo: this.CAMPO, nombre: this.CAMPO_STRING },\r\n\r\n ]\r\n\r\n // constantes tipo archivo\r\n ARCHIVO_TXT = 'txt';\r\n ARCHIVO_CSV = 'csv';\r\n\r\n ARCHIVO_TXT_DESC = '.TXT';\r\n ARCHIVO_CSV_DESC = '.CSV';\r\n\r\n ListaTipoArchivo = [\r\n { codigo: this.ARCHIVO_TXT, nombre: this.ARCHIVO_TXT_DESC },\r\n { codigo: this.ARCHIVO_CSV, nombre: this.ARCHIVO_CSV_DESC },\r\n\r\n ]\r\n\r\n //constantes Encriptacion\r\n COLSANITAS_DAVIVIENDA = 'CDAD'\r\n COLSANITAS_BANCO_BOGOTA = 'CBBD'\r\n UNION_SOLUCIONES = 'USOL'\r\n PGP = 'UPGP'\r\n BPGP = 'BPGP'\r\n CV_DAVIVIENDA = 'CV_DAVIVIENDA'\r\n CV_CITIBANK = 'CVCT'\r\n\r\n\r\n COLSANITAS_DAVIVIENDA_DESC = 'Colsanitas Davivienda'\r\n COLSANITAS_BANCO_BOGOTA_DESC = 'Colsanitas Banco de Bogota'\r\n UNION_SOLUCIONES_DESC = 'Modo Unión Soluciones'\r\n PGP_DESC = 'PGP'\r\n BPGP_DESC = 'PGP Binario'\r\n CV_DAVIVIENDA_DESC = 'Crypto Vault Davivienda'\r\n CV_CITIBANK_DESC = 'Crypto Vault CitiBank'\r\n\r\n\r\n\r\n\r\n LISTADO_ENCRIPTACION = [\r\n { codigo: this.COLSANITAS_DAVIVIENDA, nombre: this.COLSANITAS_DAVIVIENDA_DESC },\r\n { codigo: this.COLSANITAS_BANCO_BOGOTA, nombre: this.COLSANITAS_BANCO_BOGOTA_DESC },\r\n { codigo: this.UNION_SOLUCIONES, nombre: this.UNION_SOLUCIONES_DESC },\r\n { codigo: this.PGP, nombre: this.PGP_DESC },\r\n { codigo: this.BPGP, nombre: this.BPGP_DESC },\r\n { codigo: this.CV_DAVIVIENDA, nombre: this.CV_DAVIVIENDA_DESC },\r\n { codigo: this.CV_CITIBANK, nombre: this.CV_CITIBANK_DESC },\r\n\r\n\r\n ]\r\n\r\n //constantes para codigoInterfaz\r\n\r\n SIS = 'SIS'\r\n SOC = 'SOC'\r\n SOT = 'SOT'\r\n DOT = 'DOT'\r\n DPR = 'DPR'\r\n EBS = 'EBS'\r\n EBA = 'EBA'\r\n SAP = 'SAP'\r\n CAR = 'CAR'\r\n SII = 'SII'\r\n SIG = 'SIG'\r\n OAT = 'OAT'\r\n SUR = 'SUR'\r\n UVIN = 'UVIN'\r\n SSIN = 'SSIN'\r\n SSAC = 'SSAC'\r\n FIJO = 'FIJO'\r\n\r\n LISTADO_TIPOCONTABLE = [\r\n { codigo: this.SIS, nombre: this.SIS },\r\n { codigo: this.SOC, nombre: this.SOC },\r\n { codigo: this.SOT, nombre: this.SOT },\r\n { codigo: this.DOT, nombre: this.DOT },\r\n { codigo: this.DPR, nombre: this.DPR },\r\n { codigo: this.EBS, nombre: this.EBS },\r\n { codigo: this.EBA, nombre: this.EBA },\r\n { codigo: this.SAP, nombre: this.SAP },\r\n { codigo: this.CAR, nombre: this.CAR },\r\n { codigo: this.SII, nombre: this.SII },\r\n { codigo: this.SIG, nombre: this.SIG },\r\n { codigo: this.OAT, nombre: this.OAT },\r\n { codigo: this.SUR, nombre: this.SUR },\r\n { codigo: this.UVIN, nombre: this.UVIN },\r\n { codigo: this.SSIN, nombre: this.SSIN },\r\n { codigo: this.SSAC, nombre: this.SSAC },\r\n { codigo: this.FIJO, nombre: this.FIJO },\r\n ]\r\n\r\n\r\n //Mapa con las lineas/grupos a los que se puede asociar un campo de interfaz externa\r\n\r\n ENCABEZADO_N = 'N'\r\n ENCABEZADO = 'E'\r\n DETALLE = 'D'\r\n FINAL = 'F'\r\n FINAL2 = 'I'\r\n\r\n ENCABEZADODESC_N = 'Encabezado 2'\r\n ENCABEZADODESC = 'Encabezado'\r\n DETALLEDESC = 'Detalle'\r\n FINALDESC = 'Final'\r\n FINAL2DES = 'Final 2'\r\n\r\n LISTADO_LINEA = [\r\n { codigo: this.ENCABEZADO_N, nombre: this.ENCABEZADODESC_N },\r\n { codigo: this.ENCABEZADO, nombre: this.ENCABEZADODESC },\r\n { codigo: this.DETALLE, nombre: this.DETALLEDESC },\r\n { codigo: this.FINAL, nombre: this.FINALDESC },\r\n { codigo: this.FINAL2, nombre: this.FINAL2DES },\r\n ]\r\n //Tipo de campo\r\n CONSTANTE = 'C'\r\n VARIABLE = 'V'\r\n\r\n\r\n CONSTANTEDESC = 'Constante'\r\n VARIABLEDESC = 'Variable'\r\n\r\n\r\n LISTADO_TIPOCAMPOS = [\r\n { codigo: this.CONSTANTE, nombre: this.CONSTANTEDESC },\r\n { codigo: this.VARIABLE, nombre: this.VARIABLEDESC },\r\n\r\n ]\r\n\r\n //Lista Naturaleza\r\n CAMBIARNATURALEZA = 'Cambiar Naturaleza'\r\n NOAFECTA = 'No Afecta'\r\n\r\n LISTADO_NATURALEZA = [\r\n { codigo: this.SI, nombre: this.CAMBIARNATURALEZA },\r\n { codigo: this.NO, nombre: this.NOAFECTA },\r\n ]\r\n\r\n //Lista Generar Detalla\r\n\r\n PEDIR = 'P'\r\n AMBOS = 'A'\r\n TRANSFORMADO = 'T'\r\n\r\n\r\n NOGENERAR = 'No generar'\r\n SIGENERAR = 'Generar Movimiento Detalle'\r\n PEDIRDESCRIPCION = 'Solicitar Movimiento Detalle'\r\n TRANSFORMADODESCRIPCION = 'Generar Movimiento Transformado'\r\n AMBOSDESCRIPCION = 'Generar Movimiento Detalle/Transformado'\r\n\r\n\r\n MAPAGENERARDETALLE = [\r\n { codigo: this.NO, nombre: this.NOGENERAR },\r\n { codigo: this.PEDIR, nombre: this.PEDIRDESCRIPCION },\r\n { codigo: this.SI, nombre: this.SIGENERAR },\r\n { codigo: this.TRANSFORMADO, nombre: this.TRANSFORMADODESCRIPCION },\r\n { codigo: this.AMBOS, nombre: this.AMBOSDESCRIPCION },\r\n\r\n ]\r\n\r\n\r\n //lista generar detalle\r\n PORLINEA = 'L'\r\n PORZONA = 'Z'\r\n\r\n\r\n\r\n NOAPLICA = 'No aplica'\r\n PORLINEADESC = 'Generacion Por Linea de costo'\r\n PORZONADESC = '\"Proponer Por Zona Economica'\r\n\r\n\r\n\r\n MAPAGENERARCOMPROBANTEPOR = [\r\n { codigo: this.NO, nombre: this.NOAPLICA },\r\n { codigo: this.PORLINEA, nombre: this.PORLINEADESC },\r\n { codigo: this.PORZONA, nombre: this.PORZONADESC },\r\n\r\n\r\n ]\r\n\r\n\r\n\r\n SUMA = 'SU';\r\n DES_SUMA = 'Suma';\r\n PROMEDIO = 'PR';\r\n DES_PROMEDIO = 'Promedio';\r\n CONTAR = 'CN';\r\n DES_CONTAR = 'Contar';\r\n CONTAR_DISTINTO = 'CD';\r\n DES_CONTAR_DISTINTO = 'ContarDistinto';\r\n MAX = 'MX';\r\n DES_MAX = 'Maximo';\r\n MIN = 'MN';\r\n DES_MIN = 'Minimo';\r\n\r\n MAPAOPERACIONES = [\r\n { codigo: this.SUMA, nombre: this.DES_SUMA },\r\n { codigo: this.PROMEDIO, nombre: this.DES_PROMEDIO },\r\n { codigo: this.CONTAR, nombre: this.DES_CONTAR },\r\n { codigo: this.CONTAR_DISTINTO, nombre: this.DES_CONTAR_DISTINTO },\r\n ]\r\n\r\n NUMERO1 = \"###0.00;-###0.00\";\r\n NUMERO2 = \"###0.00;(###0.00)\";\r\n NUMERO3 = \"###0.00;(-###0.00)\";\r\n NUMERO4 = \"#,##0.00;-#,##0.00\";\r\n NUMERO5 = \"#,##0.00;(#,##0.00)\";\r\n NUMERO6 = \"#,##0.00;(-#,##0.00)\";\r\n NUMERO7 = \"#,###;(-#,###)\";\r\n NUMERO8 = \"###;(-###)\";\r\n\r\n NUMERO1DES = \"###0.00;-###0.00\";\r\n NUMERO2DES = \"###0.00;(###0.00)\";\r\n NUMERO3DES = \"###0.00;(-###0.00)\";\r\n NUMERO4DES = \"#,##0.00;-#,##0.00\";\r\n NUMERO5DES = \"#,##0.00;(#,##0.00)\";\r\n NUMERO6DES = \"#,##0.00;(-#,##0.00)\";\r\n NUMERO7DES = \"#,###;(-#,###)\";\r\n NUMERO8DES = \"###;(-###)\";\r\n\r\n MAPAFORMATONUMERO = [\r\n { codigo: this.NUMERO1, nombre: this.NUMERO1DES },\r\n { codigo: this.NUMERO2, nombre: this.NUMERO2DES },\r\n { codigo: this.NUMERO3, nombre: this.NUMERO3DES },\r\n { codigo: this.NUMERO4, nombre: this.NUMERO4DES },\r\n { codigo: this.NUMERO5, nombre: this.NUMERO5DES },\r\n { codigo: this.NUMERO6, nombre: this.NUMERO6DES },\r\n { codigo: this.NUMERO7, nombre: this.NUMERO7DES },\r\n { codigo: this.NUMERO8, nombre: this.NUMERO8DES },\r\n ]\r\n\r\n VIGENTE_V = \"V\";\r\n VIGENTE = 'S';\r\n NOVIGENTE = 'N';\r\n DESVIGENTE = \"Vigente\";\r\n DESNOVIGENTE = \"No Vigente\";\r\n\r\n TIPOS_VIGENTE_V = [\r\n { codigo: this.VIGENTE_V, nombre: this.DESVIGENTE },\r\n { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\r\n ]\r\n\r\n ///Constantes De Mensajes\r\n MENSAJE_INGRESAR = 'Se ingreso el registro';\r\n LETRA_A = 'A';\r\n LETRA_O = 'O';\r\n LETRA_F = 'F';\r\n MENSAJE_ADICIONAR = 'Se adicion\\u00F3 el registro';\r\n MENSAJE_GUARDAR = 'Se cre\\u00F3 el registro exitosamente';\r\n MENSAJE_ACTUALIZAR = 'Se actualiz\\u00F3 el registro exitosamente';\r\n MENSAJE_ACTUALIZAR_VARIOS = 'Se actualizaron los registros';\r\n MENSAJE_ACTUALIZAR_NO = 'Registro NO Actualizado';\r\n MENSAJE_ELIMINAR_VARIOS_CONFIRMAR = '¿Desea eliminar los registros seleccionados?';\r\n MENSAJE_ELIMINAR_CONFIRMAR = '¿Desea eliminar el registro?';\r\n MENSAJE_ELIMINAR = 'Se elimin\\u00F3 el registro exitosamente';\r\n MENSAJE_ELIMINAR_VARIOS = 'Se eliminarion correctamente los registros';\r\n MENSAJE_ELIMINAR_NO = 'No se pudo eliminar el registro';\r\n MENSAJE_EMVIARCORREO_NO = 'No se pudo enviar el correo';\r\n MENSAJE_ELIMINAR_NO_ASOCIADO = ' No se puede eliminar/crear el registro, tiene elementos asociados';\r\n MENSAJE_TERMINO_SATISFACTORIO = 'Proceso termin\\u00F3 satisfactoriamente';\r\n MENSAJE_CANCELAR = 'Registro Cancelado';\r\n MENSAJE_GUARDAR_NO = 'El registro no se pudo guardar por=';\r\n MENSAJE_YA_EXISTE = 'El registro ya existe';\r\n MENSAJE_ORDEN_REPETIDO = 'El orden no se puede repetir';\r\n MENSAJE_NO_EXISTE = 'No existen registros ';\r\n MENSAJE_GENERAR_REPORTE = 'Generando informacion para el reporte';\r\n MENSAJE_FIN_GENERAR_REPORTE = 'Se finalizo la generacion de informacion para reporte';\r\n MENSAJE_INCOMPLETA = 'Información incompleta.';\r\n MENSAJE_DUPLICADA = 'Existe más de un registro.';\r\n ESTADO_ACTIVO = 'A';\r\n MENSAJE_ERROR_SERVICIO = 'Error en el servicio; Por favor intente mas tarde';\r\n MENSAJE_CAMPOS_OBLIGATORIOS = 'Faltan campos obligatorios';\r\n SUBCONTENIDOINICIO = '${CONTENIDO=';\r\n SUBCONTENIDOFIN = '}';\r\n MENSAJE_PUNTO_PROCESO_REPETIDO = \"El punto de proceso no se puede repetir\";\r\n MENSAJE_PARAMETRO_REPETIDO = \"El parametro no se puede repetir\";\r\n\r\n /* --------------------------- imagenes X aplicacion ----------------------- */\r\n CODIGO_SARA = '1';\r\n CODIGO_SEGURIDAD = '5';\r\n CODIGO_SAM = '13';\r\n CODIGO_SAMANTA = '4';\r\n CODIGO_APS = '77';\r\n LOGO_SARA = 'assets/images/logo-sara.png';\r\n LOGO_SEGURIDAD = 'assets/images/logo-seguridad.png';\r\n LOGO_SAM = 'assets/images/logo-sam.png';\r\n LOGO_SAMAMNTA = 'assets/images/logo-samanta.png';\r\n LOGO_APS = 'assets/images/logo-aps.png';\r\n\r\n LOGO_DESCOMPRIMIDO_SARA = 'assets/images/logo-sara-descomprimido.png';\r\n LOGO_DESCOMPRIMIDO_SAM = 'assets/images/logo-sam-descomprimido.png';\r\n LOGO_DESCOMPRIMIDO_SAMANTA = 'assets/images/logo-samanta-descomprimido.png';\r\n LOGO_DESCOMPRIMIDO_APS = 'assets/images/logo-aps-descomprimido.png';\r\n LOGO_DESCOMPRIMIDO_SEGURIDAD = 'assets/images/logo-seguridad-descomprimido.png';\r\n\r\n MAPALOGO = [\r\n { codigo: this.CODIGO_SARA, nombre: this.LOGO_SARA },\r\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGO_SEGURIDAD },\r\n { codigo: this.CODIGO_SAM, nombre: this.LOGO_SAM },\r\n { codigo: this.CODIGO_APS, nombre: this.LOGO_APS },\r\n { codigo: this.CODIGO_SAMANTA, nombre: this.LOGO_SAMAMNTA },\r\n ]\r\n MAPALOGODESPLEGADO = [\r\n { codigo: this.CODIGO_SARA, nombre: this.LOGO_DESCOMPRIMIDO_SARA },\r\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGO_DESCOMPRIMIDO_SEGURIDAD },\r\n { codigo: this.CODIGO_SAM, nombre: this.LOGO_DESCOMPRIMIDO_SAM },\r\n { codigo: this.CODIGO_APS, nombre: this.LOGO_DESCOMPRIMIDO_APS },\r\n { codigo: this.CODIGO_SAMANTA, nombre: this.LOGO_DESCOMPRIMIDO_SAMANTA },\r\n ]\r\n\r\n\r\n //LOGOS INICIO LOGIN\r\n LOGOICONOSARA = 'assets/images/logo-icono-sara.png';\r\n LOGOICONOSAM = 'assets/images/logo-icono-sam.png';\r\n LOGOICONOAPS = 'assets/images/logo-icono-aps.png';\r\n LOGOICONOSEG = 'assets/images/logo-icono-seguridad.png';\r\n\r\n\r\n\r\n MAPALOGOSICONOS = [\r\n { codigo: this.CODIGO_SARA, nombre: this.LOGOICONOSARA },\r\n { codigo: this.CODIGO_SAM, nombre: this.LOGOICONOSAM },\r\n { codigo: this.CODIGO_APS, nombre: this.LOGOICONOAPS },\r\n { codigo: this.CODIGO_SEGURIDAD, nombre: this.LOGOICONOSEG },\r\n ]\r\n\r\n transform(value: any, ...args: any): any {\r\n let result = value;\r\n if (args[0] == 'listacampos') { this.LISTADO_TIPOCAMPOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listalinea') { this.LISTADO_LINEA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaSiNo') { this.LISTA_SINO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaEstadoSn') { this.LISTA_ESTADO_SN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoNaturaleza') { this.LISTADO_NATURALEZA_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoFormula') { this.LISTADO_FORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoEstadoConcepto') { this.LISTADO_ESTADO_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoTipoFormula') { this.LISTA_TIPOFORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaRecursoGrafico') { this.Rgrafica.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoOPerador') { this.Roperador.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listadoTipo') { this.ListaTipo.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'orientacion') { this.ORIENTACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'mapaOperaciones') { this.MAPAOPERACIONES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'mapaFormatoNumero') { this.MAPAFORMATONUMERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listagenero') { this.SGENERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'mapaLogos') { this.MAPALOGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n return result;\r\n }\r\n}\r\n\r\n","import { AfterViewInit, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../core/servicios/auth.service';\r\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\r\nimport { AppMenuProfileComponent } from './app.menuprofile.component';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { UtilsService } from '../core/servicios/utils.service';\r\nimport { MenuService } from './app.menu.service';\r\nimport { AppMenuComponent } from './app.menu.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n imports: [AppMenuProfileComponent, AppMenuComponent, CommonModule, InputSwitchModule, AutoCompleteModule, ButtonModule],\r\n standalone: true,\r\n templateUrl: './app.sidebar.component.html'\r\n})\r\nexport class AppSidebarComponent implements OnDestroy {\r\n\r\n timeout: any = null;\r\n\r\n @ViewChild(AppMenuProfileComponent) menuProfile!: AppMenuProfileComponent;\r\n\r\n @ViewChild('menuContainer') menuContainer!: ElementRef;\r\n logoComprimido\r\n logoDescomprimido\r\n lock:boolean;\r\n url = window.location.href;\r\n \r\n constructor(public utilsService : UtilsService,public layoutService: LayoutService, public el: ElementRef, public generalPipe : GeneralPipe, private activatedRoute: ActivatedRoute, private authService: AuthService, private menuService: MenuService) {\r\n this.activatedRoute.data.subscribe((v) => {\r\n let resultadoComprimido = this.generalPipe.MAPALOGO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\r\n this.logoComprimido = resultadoComprimido[0].nombre;\r\n let resultadoDescomprimido = this.generalPipe.MAPALOGODESPLEGADO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\r\n this.logoDescomprimido = resultadoDescomprimido[0].nombre;\r\n })\r\n }\r\n\r\n resetOverlay() {\r\n if(this.layoutService.state.overlayMenuActive) {\r\n this.layoutService.state.overlayMenuActive = false;\r\n }\r\n }\r\n\r\n get menuProfilePosition(): string {\r\n return this.layoutService.config.menuProfilePosition;\r\n }\r\n\r\n onMouseEnter() {\r\n if (!this.layoutService.state.anchored) {\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n this.timeout = null;\r\n }\r\n this.layoutService.state.sidebarActive = true;\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n if (!this.layoutService.state.anchored) {\r\n if (!this.timeout) {\r\n this.timeout = setTimeout(() => this.layoutService.state.sidebarActive = false , 300);\r\n //Al desenfocarse el menu lateral, se cierran los submenu\r\n this.menuService.reset()\r\n }\r\n }\r\n }\r\n\r\n anchor() {\r\n this.lock = !this.lock;\r\n this.layoutService.state.anchored = !this.layoutService.state.anchored;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.resetOverlay();\r\n }\r\n\r\n}\r\n","<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"layout-sidebar-top\">\r\n <a [href]=\"utilsService.obtenerBase() + (url.toString().includes('admonPortal') ? '/admonPortal/inicio' : '/inicio') \">\r\n <!--LOGO DESCOMPRIMIDO-->\r\n <img style=\"width:142px; margin-top: 5px;\" class=\"layout-sidebar-logo\" src=\"{{logoDescomprimido}}\" />\r\n <!--LOGO DESCOMPRIMIDO-->\r\n\r\n <!-- <svg width=\"167\" height=\"32\" viewBox=\"0 0 167 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"layout-sidebar-logo\" src>\r\n <path d=\"M76.5469 5.25V20.7812C76.5365 22.3125 76.1979 23.6458 75.5312 24.7812C74.8646 25.9167 73.9219 26.7917 72.7031 27.4062C71.4948 28.0104 70.1042 28.3125 68.5312 28.3125C66.1354 28.3125 64.2135 27.6615 62.7656 26.3594C61.3281 25.0469 60.5833 23.2344 60.5312 20.9219V5.25H62.4375V20.6406C62.4375 22.5573 62.9844 24.0469 64.0781 25.1094C65.1719 26.1615 66.6562 26.6875 68.5312 26.6875C70.4062 26.6875 71.8854 26.1562 72.9688 25.0938C74.0625 24.0312 74.6094 22.5521 74.6094 20.6562V5.25H76.5469Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path d=\"M83.8438 26.375H95.0781V28H81.9062V5.25H83.8438V26.375Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path d=\"M109.906 6.89062H102.109V28H100.188V6.89062H92.4062V5.25H109.906V6.89062Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path d=\"M115.938 28H114.016V5.25H115.938V28Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path d=\"M124.672 5.25L133.062 25.3281L141.484 5.25H144.047V28H142.125V18.0938L142.281 7.9375L133.812 28H132.328L123.891 8.01562L124.047 18.0312V28H122.125V5.25H124.672Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path d=\"M162.375 21.625H152.047L149.703 28H147.688L156.297 5.25H158.125L166.734 28H164.734L162.375 21.625ZM152.641 19.9844H161.766L157.203 7.59375L152.641 19.9844Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M39.9709 8.57017C39.9112 8.42729 39.7717 8.33484 39.617 8.33484H37.5093L38.657 6.95037C38.752 6.83653 38.7711 6.67837 38.7083 6.54466C38.6455 6.41095 38.5106 6.32537 38.362 6.32537H15.2326L8.67361 0.10518C8.54643 -0.0147766 8.35336 -0.0346421 8.20625 0.0585729L4.52643 2.36221L4.52336 2.36526L4.51953 2.36679L0.17315 5.21978C0.162424 5.22666 0.157061 5.23735 0.147101 5.24576C0.125649 5.26257 0.107261 5.28091 0.0904059 5.30154C0.0750829 5.31987 0.0628245 5.33821 0.0513322 5.35884C0.0390738 5.381 0.0306461 5.40316 0.0229846 5.42684C0.015323 5.45129 0.0107261 5.47574 0.00766152 5.50172C0.00689537 5.51471 0 5.5254 0 5.53916C0 5.55138 0.00536306 5.56055 0.00689537 5.57278C0.00919382 5.59799 0.0145569 5.62168 0.0222184 5.64689C0.0298799 5.6721 0.0383076 5.69579 0.0513322 5.71948C0.0566952 5.72941 0.0574614 5.74011 0.0635906 5.75004C0.0689537 5.75844 0.0789137 5.7615 0.0850429 5.76914C0.111858 5.80352 0.14327 5.83179 0.180046 5.85471C0.193836 5.86312 0.204563 5.87382 0.218353 5.88069C0.268919 5.90514 0.324082 5.92119 0.383842 5.92119H5.61743L6.79883 8.86052L6.80036 8.86281V8.8651L14.4864 27.2292L9.94925 31.3353C9.83203 31.4415 9.79219 31.608 9.84965 31.7555C9.90635 31.903 10.0489 32 10.2067 32H16.7389C16.7895 32 16.8393 31.9893 16.886 31.9702C16.9327 31.9511 16.9749 31.9228 17.0101 31.8877L20.444 28.4502C20.4486 28.4555 20.4501 28.4624 20.4555 28.4678L23.707 31.8808C23.7798 31.958 23.8756 31.9794 23.9867 32C29.8899 31.9671 38.8462 31.9373 39.2676 31.9809C39.3074 31.9939 39.348 32 39.3886 32C39.5197 32 39.6476 31.9335 39.7189 31.8182C39.9403 31.459 39.9387 31.4552 28.6265 20.2603L39.8874 8.98888C39.9977 8.87733 40.0299 8.71305 39.9709 8.57017ZM37.5483 7.08867L36.5163 8.33484H17.3518L16.0379 7.08867H37.5483ZM8.36178 0.862361L16.2409 8.33484H7.41329L5.20447 2.83898L8.36178 0.862361ZM1.66178 5.15636L4.54864 3.2615L5.3102 5.15636H1.66178ZM21.0102 27.9406C21.0002 27.9299 20.9864 27.9253 20.9757 27.9169L23.7201 25.1701V30.7844L21.0102 27.9406ZM38.5045 31.213C37.058 31.1916 33.464 31.1825 24.4862 31.2321V24.6513C24.4862 24.581 24.4617 24.5183 24.4288 24.461L28.0864 20.7997C31.6934 24.3701 36.7998 29.4519 38.5045 31.213ZM16.8722 30.9425L7.72894 9.0989H36.6006C36.6282 9.10501 36.6558 9.11342 36.6834 9.11342C36.7056 9.11342 36.7263 9.10272 36.7485 9.0989H38.6945L16.8722 30.9425Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n </svg> -->\r\n\r\n\r\n <!-- <svg width=\"41\" height=\"32\" viewBox=\"0 0 41 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"layout-sidebar-logo-slim\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.7209 8.57017C40.6612 8.42729 40.5217 8.33484 40.367 8.33484H38.2593L39.407 6.95037C39.502 6.83653 39.5211 6.67837 39.4583 6.54466C39.3955 6.41095 39.2606 6.32537 39.112 6.32537H15.9826L9.42361 0.10518C9.29643 -0.0147766 9.10336 -0.0346421 8.95625 0.0585729L5.27643 2.36221L5.27336 2.36526L5.26953 2.36679L0.92315 5.21978C0.912424 5.22666 0.907061 5.23735 0.897101 5.24576C0.875649 5.26257 0.857261 5.28091 0.840406 5.30154C0.825083 5.31987 0.812825 5.33821 0.801332 5.35884C0.789074 5.381 0.780646 5.40316 0.772985 5.42684C0.765323 5.45129 0.760726 5.47574 0.757662 5.50172C0.756895 5.51471 0.75 5.5254 0.75 5.53916C0.75 5.55138 0.755363 5.56055 0.756895 5.57278C0.759194 5.59799 0.764557 5.62168 0.772218 5.64689C0.77988 5.6721 0.788308 5.69579 0.801332 5.71948C0.806695 5.72941 0.807461 5.74011 0.813591 5.75004C0.818954 5.75844 0.828914 5.7615 0.835043 5.76914C0.861858 5.80352 0.89327 5.83179 0.930046 5.85471C0.943836 5.86312 0.954563 5.87382 0.968353 5.88069C1.01892 5.90514 1.07408 5.92119 1.13384 5.92119H6.36743L7.54883 8.86052L7.55036 8.86281V8.8651L15.2364 27.2292L10.6993 31.3353C10.582 31.4415 10.5422 31.608 10.5997 31.7555C10.6564 31.903 10.7989 32 10.9567 32H17.4889C17.5395 32 17.5893 31.9893 17.636 31.9702C17.6827 31.9511 17.7249 31.9228 17.7601 31.8877L21.194 28.4502C21.1986 28.4555 21.2001 28.4624 21.2055 28.4678L24.457 31.8808C24.5298 31.958 24.6256 31.9794 24.7367 32C30.6399 31.9671 39.5962 31.9373 40.0176 31.9809C40.0574 31.9939 40.098 32 40.1386 32C40.2697 32 40.3976 31.9335 40.4689 31.8182C40.6903 31.459 40.6887 31.4552 29.3765 20.2603L40.6374 8.98888C40.7477 8.87733 40.7799 8.71305 40.7209 8.57017ZM38.2983 7.08867L37.2663 8.33484H18.1018L16.7879 7.08867H38.2983ZM9.11178 0.862361L16.9909 8.33484H8.16329L5.95447 2.83898L9.11178 0.862361ZM2.41178 5.15636L5.29864 3.2615L6.0602 5.15636H2.41178ZM21.7602 27.9406C21.7502 27.9299 21.7364 27.9253 21.7257 27.9169L24.4701 25.1701V30.7844L21.7602 27.9406ZM39.2545 31.213C37.808 31.1916 34.214 31.1825 25.2362 31.2321V24.6513C25.2362 24.581 25.2117 24.5183 25.1788 24.461L28.8364 20.7997C32.4434 24.3701 37.5498 29.4519 39.2545 31.213ZM17.6222 30.9425L8.47894 9.0989H37.3506C37.3782 9.10501 37.4058 9.11342 37.4334 9.11342C37.4556 9.11342 37.4763 9.10272 37.4985 9.0989H39.4445L17.6222 30.9425Z\" fill=\"var(--topbar-item-text-color)\"/>\r\n </svg> -->\r\n\r\n <!--LOGO COMPRIMIDO-->\r\n <img style=\"width:55px; margin-right: 4px; margin-top: 4px;\" class=\"layout-sidebar-logo-slim\" src=\"{{logoComprimido}}\" />\r\n <!--LOGO COMPRIMIDO-->\r\n\r\n\r\n </a>\r\n <button class=\"layout-sidebar-anchor p-link\" type=\"button\" (click)=\"anchor()\">\r\n <span [class]=\"lock ? 'pi pi-lock' : 'pi pi-unlock'\"></span>\r\n </button>\r\n </div>\r\n <app-menu-profile #menuProfileStart *ngIf=\"menuProfilePosition === 'start'\"></app-menu-profile> \r\n <div #menuContainer class=\"layout-menu-container\">\r\n <app-menu></app-menu>\r\n </div>\r\n <!-- Se desactiva el menu del perfil -->\r\n <app-menu-profile #menuProfileEnd *ngIf=\"menuProfilePosition === 'end'\"></app-menu-profile>\r\n</div>\r\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { MegaMenuItem } from 'primeng/api';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { TareasModel } from '../seguridad/modelos/TareasModel';\r\nimport { ModulosModel } from '../seguridad/modelos/ModulosModel';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StorageService } from '../core/servicios/storage.service';\r\nimport { MenuService } from '../core/servicios/menu.service';\r\nimport { AuthService } from '../core/servicios/auth.service';\r\nimport { CargarControlFuncionalidadService } from '../core/servicios/cargar-control-funcionalidad.service';\r\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\r\nimport { UtilsService } from '../core/servicios/utils.service';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { StyleClassModule } from 'primeng/styleclass';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\n@Component({\r\n selector: 'app-topbar',\r\n imports: [CommonModule, AutoCompleteModule, FormsModule, StyleClassModule, InputSwitchModule] , \r\n standalone: true,\r\n templateUrl: './app.topbar.component.html'\r\n})\r\nexport class AppTopbarComponent implements OnInit, AfterViewInit, OnDestroy {\r\n //Variables\r\n\r\n modulosDisponibles: ModulosModel[] = new Array(); // una matriz de objetos ModulosModel\r\n modulo: string; // una cadena que indica el módulo seleccionado\r\n searchClick: boolean = false; // un valor booleano que indica si se ha hecho clic en el botón de búsqueda o no\r\n tareaSeleccionadas: TareasModel; // un objeto TareasModel que representa la tarea seleccionada\r\n tareasFiltradas: TareasModel[]; // una matriz de objetos TareasModel que representa las tareas filtradas\r\n documentClickListener!: () => void;\r\n topbarItemClick: boolean = false;\r\n activeTopbarItem: string = '';\r\n menuClick: boolean = false;\r\n mobileMenuActive: boolean = false;\r\n search: boolean = false;\r\n intervalId: number;\r\n tareas: TareasModel[]\r\n empresa: string;\r\n rol: string;\r\n conexion: string;\r\n logoComprimido;\r\n codigo\r\n @ViewChild('menuButton') menuButton!: ElementRef; // una referencia al botón del menú\r\n @ViewChild('mobileMenuButton') mobileMenuButton!: ElementRef; // una referencia al botón del menú móvil\r\n @ViewChild('searchInput') searchInput!: ElementRef; // una referencia al campo de búsqueda\r\n @ViewChild('searchInput', { static: false }) autocomplete!: AutoComplete;\r\n switch: boolean;\r\n colores: string[] = [\"#f3d9dc\", \"#aed9e0\", \"#c7e7b0\", \"#fdf2ab\", \"#e6d1e1\", \"#f9dbbd\", \"#e4e3e7\", \"#f9d5d3\"];\r\n color: string ;\r\n iniciales: string;\r\n url = window.location.href;\r\n\r\n constructor(\r\n public layoutService: LayoutService,\r\n public el: ElementRef,\r\n private activatedRoute: ActivatedRoute,\r\n private storage: StorageService,\r\n private router: Router,\r\n private renderer: Renderer2,\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private controlFuncionalidad: CargarControlFuncionalidadService,\r\n public generalPipe : GeneralPipe,\r\n private storageService: StorageService,\r\n public utilsService: UtilsService,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) {\r\n this.codigo = this.authService.getTokenKey('aplicacion')\r\n let resultadoComprimido = this.generalPipe.MAPALOGO.filter(item => item.codigo == this.authService.getTokenKey('aplicacion') );\r\n this.logoComprimido = resultadoComprimido[0]?.nombre != null ? resultadoComprimido[0]?.nombre : this.generalPipe.LOGO_SARA;\r\n\r\n }\r\n\r\n calcularIniciales() {\r\n let colorUsuario = this.storageService.getItem('colorUsuario')\r\n if (colorUsuario) {\r\n this.color = colorUsuario;\r\n } else {\r\n const indice: number = Math.floor(Math.random() * this.colores.length);\r\n this.color = this.colores[indice];\r\n this.storageService.setItem('colorUsuario', this.color);\r\n }\r\n var nombreUsuario = this.authService.getTokenKey('nombreUsuario');\r\n var cantidadPalabras: number = this.contarPalabras(nombreUsuario);\r\n if (cantidadPalabras == 0 || cantidadPalabras == undefined || cantidadPalabras == null) {\r\n this.iniciales = 'US'\r\n } else if (cantidadPalabras == 1) {\r\n this.iniciales = this.obtenerInicial(nombreUsuario);\r\n } else {\r\n this.iniciales = this.obtenerInicial(this.obtenerPalabra(nombreUsuario, cantidadPalabras-1)) + \r\n this.obtenerInicial(this.obtenerPalabra(nombreUsuario, cantidadPalabras)) \r\n }\r\n }\r\n\r\n obtenerPalabra(frase: string, numeroPalabra: number): string {\r\n const palabras = frase.split(/\\s+/);\r\n if (numeroPalabra < 1 || numeroPalabra > palabras.length) {\r\n return null;\r\n }\r\n const indicePalabra = numeroPalabra - 1;\r\n return palabras[indicePalabra];\r\n }\r\n\r\n obtenerInicial(palabra: string): string {\r\n if (palabra.length === 0) {\r\n return '';\r\n }\r\n const inicial = palabra.charAt(0).toUpperCase();\r\n return inicial;\r\n }\r\n\r\n contarPalabras(texto: string): number {\r\n if (texto == null || texto == undefined) {\r\n return 0;\r\n }\r\n texto = texto.trim();\r\n const palabras = texto.split(/\\s+/);\r\n return palabras.length;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n clearInterval(this.intervalId);\r\n }\r\n ngAfterViewInit(): void {\r\n this.documentClickListener = this.renderer.listen('body', 'click', () => {\r\n if (!this.topbarItemClick) {\r\n this.activeTopbarItem = '';\r\n }\r\n\r\n if (!this.menuClick) {\r\n if (this.mobileMenuActive) {\r\n this.mobileMenuActive = false;\r\n }\r\n }\r\n\r\n if (!this.searchClick) {\r\n this.search = false;\r\n }\r\n\r\n this.searchClick = false;\r\n this.topbarItemClick = false;\r\n this.menuClick = false;\r\n this.modulo = this.storage.getItem('moduloSeleccionado')\r\n });\r\n\r\n this.menuService.loadTareas().subscribe(() => {\r\n setTimeout(() => {\r\n this.menuService.setTareasDelModulo(this.modulo);\r\n });\r\n });\r\n\r\n // Cada 5 minutos verifica que el token no haya expirado\r\n this.intervalId = window.setInterval(() => {\r\n if (!this.authService.isTokenValid()) {\r\n this.authService.deleteToken();\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/timeout');\r\n } else {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/timeout');\r\n }\r\n }\r\n }, 300_000);\r\n }\r\n\r\n ngOnInit(): void {\r\n let tema = this.storageService.getItem('tema');\r\n this.switch = tema == 'temaOscuro' ? true : false;\r\n if (tema) {\r\n this.cambiarTema();\r\n } else {\r\n this.switch = false;\r\n }\r\n this.calcularIniciales();\r\n this.empresa = this.authService.getTokenKey('numeroEmpresa') + ' - ' + this.authService.getTokenKey('nombreEmpresa')\r\n this.rol = this.authService.getTokenKey('nombreRol')\r\n this.conexion = this.authService.getTokenKey('nombreConexion')\r\n this.modulosDisponibles = JSON.parse(this.storage.getItem('modulos'));\r\n this.tareas = this.storage.getItem('__tareas') != null ? JSON.parse(this.storage.getItem('__tareas')) : '';\r\n this.activatedRoute.data.subscribe((v) => {\r\n //this.modulosDisponibles = v['modulosDisponibles'];\r\n this.modulo = this.storage.getItem('moduloSeleccionado')\r\n let moduloSeleccionado: ModulosModel = new ModulosModel(this.modulo, '');\r\n this.cambioModulo(moduloSeleccionado, false)\r\n });\r\n }\r\n\r\n activeItem!: number; // un número que representa el elemento activo\r\n\r\n //Dummi de barra de elementos por si se necesita.\r\n model: MegaMenuItem[] = [\r\n {\r\n label: 'UI KIT',\r\n items: [\r\n [\r\n {\r\n label: 'UI KIT 1',\r\n items: [\r\n { label: 'Form Layout', icon: 'pi pi-fw pi-id-card', routerLink: ['/uikit/formlayout'] },\r\n { label: 'Input', icon: 'pi pi-fw pi-check-square', routerLink: ['/uikit/input'] },\r\n { label: 'Float Label', icon: 'pi pi-fw pi-bookmark', routerLink: ['/uikit/floatlabel'] },\r\n { label: 'Button', icon: 'pi pi-fw pi-mobile', routerLink: ['/uikit/button'] },\r\n { label: 'File', icon: 'pi pi-fw pi-file', routerLink: ['/uikit/file'] },\r\n ],\r\n },\r\n ],\r\n [\r\n {\r\n label: 'UI KIT 2',\r\n items: [\r\n { label: 'Table', icon: 'pi pi-fw pi-table', routerLink: ['/uikit/table'] },\r\n { label: 'List', icon: 'pi pi-fw pi-list', routerLink: ['/uikit/list'] },\r\n { label: 'Tree', icon: 'pi pi-fw pi-share-alt', routerLink: ['/uikit/tree'] },\r\n { label: 'Panel', icon: 'pi pi-fw pi-tablet', routerLink: ['/uikit/panel'] },\r\n { label: 'Chart', icon: 'pi pi-fw pi-chart-bar', routerLink: ['/uikit/charts'] },\r\n ],\r\n },\r\n ],\r\n [\r\n {\r\n label: 'UI KIT 3',\r\n items: [\r\n { label: 'Overlay', icon: 'pi pi-fw pi-clone', routerLink: ['/uikit/overlay'] },\r\n { label: 'Media', icon: 'pi pi-fw pi-image', routerLink: ['/uikit/media'] },\r\n { label: 'Menu', icon: 'pi pi-fw pi-bars', routerLink: ['/uikit/menu'] },\r\n { label: 'Message', icon: 'pi pi-fw pi-comment', routerLink: ['/uikit/message'] },\r\n { label: 'Misc', icon: 'pi pi-fw pi-circle-off', routerLink: ['/uikit/misc'] },\r\n ],\r\n },\r\n ],\r\n ],\r\n },\r\n {\r\n label: 'UTILITIES',\r\n items: [\r\n [\r\n {\r\n label: 'UTILITIES 1',\r\n items: [\r\n { label: 'Icons', icon: 'pi pi-fw pi-prime', routerLink: ['utilities/icons'] },\r\n { label: 'PrimeFlex', icon: 'pi pi-fw pi-desktop', url: 'https://www.primefaces.org/primeflex/', target: '_blank' },\r\n ],\r\n },\r\n ],\r\n ],\r\n },\r\n ];\r\n\r\n // un getter que devuelve el estado activo del menú superior móvil\r\n get mobileTopbarActive(): boolean {\r\n return this.layoutService.state.topbarMenuActive;\r\n }\r\n\r\n onMenuButtonClick() {\r\n this.layoutService.onMenuToggle();\r\n }\r\n\r\n onRightMenuButtonClick() {\r\n this.layoutService.openRightSidebar();\r\n }\r\n\r\n onMobileTopbarMenuButtonClick() {\r\n this.layoutService.onTopbarMenuToggle();\r\n }\r\n\r\n // un método que se ejecuta para enfocar el campo de búsqueda\r\n focusSearchInput() {\r\n setTimeout(() => {\r\n if (this.autocomplete) {\r\n // this.autocomplete.focusInput();\r\n }\r\n //this.searchInput.nativeElement.focus();\r\n }, 0);\r\n }\r\n\r\n // un método que se ejecuta cuando se selecciona una tarea\r\n tareaSeleccion() {\r\n if (this.tareaSeleccionadas != null) {\r\n this.router.navigate([this.utilsService.obtenerBase() + this.tareaSeleccionadas.urlprincipal.replace(/.jsf/, '')]);\r\n }\r\n }\r\n\r\n salir() {\r\n this.authService.deleteToken();\r\n this.storageService.removeItem('roles')\r\n this.storageService.removeItem('autenticacionUsuarioDTO')\r\n this.storageService.removeItem('rol_seleccionado')\r\n this.storageService.removeItem('token')\r\n this.storageService.removeItem('__tareas')\r\n this.storageService.removeItem('modulos')\r\n this.storageService.removeItem('moduloSeleccionado')\r\n this.controlFuncionalidad.eliminarFuncionalidades();\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\r\n }\r\n\r\n cambioModulo(modulo: ModulosModel, navegar: boolean): void {\r\n this.storage.setItem('moduloSeleccionado', modulo.llave)\r\n this.menuService.setTareasDelModulo(modulo.llave);\r\n if (navegar) {\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\r\n } else {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\r\n }\r\n }\r\n }\r\n\r\n // un método que se ejecuta para filtrar las tareas\r\n filterTarea(event) {\r\n const filtered: TareasModel[] = [];\r\n const query = event.query;\r\n for (let i = 0; i < this.tareas.length; i++) {\r\n const country = this.tareas[i];\r\n if (country.descripcion.toLowerCase().includes(query.toLowerCase())) {\r\n filtered.push(country);\r\n }\r\n }\r\n this.tareasFiltradas = filtered;\r\n }\r\n\r\n cambioSwitch(cambio){\r\n console.log(cambio)\r\n this.switch = cambio.checked;\r\n this.cambiarTema()\r\n }\r\n\r\n cambiarTema(){\r\n let tema = this.switch ? 'temaOscuro' : 'temaClaro';\r\n localStorage.setItem(this.utilsService.obtenerBase() + '_' +'tema', tema);\r\n let linkTema = this.document.getElementById('temaApp') as HTMLLinkElement;\r\n linkTema.href = `${tema}.css`\r\n }\r\n}\r\n\r\n","\r\n\r\n<div class=\"layout-topbar\">\r\n <div class=\"layout-topbar-start\">\r\n <a class=\"layout-topbar-logo\" routerLink=\"/\">\r\n <!-- <svg width=\"167\" height=\"32\" viewBox=\"0 0 167 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"layout-topbar-logo-full\">\r\n <path\r\n d=\"M76.5469 5.25V20.7812C76.5365 22.3125 76.1979 23.6458 75.5312 24.7812C74.8646 25.9167 73.9219 26.7917 72.7031 27.4062C71.4948 28.0104 70.1042 28.3125 68.5312 28.3125C66.1354 28.3125 64.2135 27.6615 62.7656 26.3594C61.3281 25.0469 60.5833 23.2344 60.5312 20.9219V5.25H62.4375V20.6406C62.4375 22.5573 62.9844 24.0469 64.0781 25.1094C65.1719 26.1615 66.6562 26.6875 68.5312 26.6875C70.4062 26.6875 71.8854 26.1562 72.9688 25.0938C74.0625 24.0312 74.6094 22.5521 74.6094 20.6562V5.25H76.5469Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n <path d=\"M83.8438 26.375H95.0781V28H81.9062V5.25H83.8438V26.375Z\" fill=\"var(--topbar-item-text-color)\" />\r\n <path d=\"M109.906 6.89062H102.109V28H100.188V6.89062H92.4062V5.25H109.906V6.89062Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n <path d=\"M115.938 28H114.016V5.25H115.938V28Z\" fill=\"var(--topbar-item-text-color)\" />\r\n <path\r\n d=\"M124.672 5.25L133.062 25.3281L141.484 5.25H144.047V28H142.125V18.0938L142.281 7.9375L133.812 28H132.328L123.891 8.01562L124.047 18.0312V28H122.125V5.25H124.672Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n <path\r\n d=\"M162.375 21.625H152.047L149.703 28H147.688L156.297 5.25H158.125L166.734 28H164.734L162.375 21.625ZM152.641 19.9844H161.766L157.203 7.59375L152.641 19.9844Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M39.9709 8.57017C39.9112 8.42729 39.7717 8.33484 39.617 8.33484H37.5093L38.657 6.95037C38.752 6.83653 38.7711 6.67837 38.7083 6.54466C38.6455 6.41095 38.5106 6.32537 38.362 6.32537H15.2326L8.67361 0.10518C8.54643 -0.0147766 8.35336 -0.0346421 8.20625 0.0585729L4.52643 2.36221L4.52336 2.36526L4.51953 2.36679L0.17315 5.21978C0.162424 5.22666 0.157061 5.23735 0.147101 5.24576C0.125649 5.26257 0.107261 5.28091 0.0904059 5.30154C0.0750829 5.31987 0.0628245 5.33821 0.0513322 5.35884C0.0390738 5.381 0.0306461 5.40316 0.0229846 5.42684C0.015323 5.45129 0.0107261 5.47574 0.00766152 5.50172C0.00689537 5.51471 0 5.5254 0 5.53916C0 5.55138 0.00536306 5.56055 0.00689537 5.57278C0.00919382 5.59799 0.0145569 5.62168 0.0222184 5.64689C0.0298799 5.6721 0.0383076 5.69579 0.0513322 5.71948C0.0566952 5.72941 0.0574614 5.74011 0.0635906 5.75004C0.0689537 5.75844 0.0789137 5.7615 0.0850429 5.76914C0.111858 5.80352 0.14327 5.83179 0.180046 5.85471C0.193836 5.86312 0.204563 5.87382 0.218353 5.88069C0.268919 5.90514 0.324082 5.92119 0.383842 5.92119H5.61743L6.79883 8.86052L6.80036 8.86281V8.8651L14.4864 27.2292L9.94925 31.3353C9.83203 31.4415 9.79219 31.608 9.84965 31.7555C9.90635 31.903 10.0489 32 10.2067 32H16.7389C16.7895 32 16.8393 31.9893 16.886 31.9702C16.9327 31.9511 16.9749 31.9228 17.0101 31.8877L20.444 28.4502C20.4486 28.4555 20.4501 28.4624 20.4555 28.4678L23.707 31.8808C23.7798 31.958 23.8756 31.9794 23.9867 32C29.8899 31.9671 38.8462 31.9373 39.2676 31.9809C39.3074 31.9939 39.348 32 39.3886 32C39.5197 32 39.6476 31.9335 39.7189 31.8182C39.9403 31.459 39.9387 31.4552 28.6265 20.2603L39.8874 8.98888C39.9977 8.87733 40.0299 8.71305 39.9709 8.57017ZM37.5483 7.08867L36.5163 8.33484H17.3518L16.0379 7.08867H37.5483ZM8.36178 0.862361L16.2409 8.33484H7.41329L5.20447 2.83898L8.36178 0.862361ZM1.66178 5.15636L4.54864 3.2615L5.3102 5.15636H1.66178ZM21.0102 27.9406C21.0002 27.9299 20.9864 27.9253 20.9757 27.9169L23.7201 25.1701V30.7844L21.0102 27.9406ZM38.5045 31.213C37.058 31.1916 33.464 31.1825 24.4862 31.2321V24.6513C24.4862 24.581 24.4617 24.5183 24.4288 24.461L28.0864 20.7997C31.6934 24.3701 36.7998 29.4519 38.5045 31.213ZM16.8722 30.9425L7.72894 9.0989H36.6006C36.6282 9.10501 36.6558 9.11342 36.6834 9.11342C36.7056 9.11342 36.7263 9.10272 36.7485 9.0989H38.6945L16.8722 30.9425Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n </svg> -->\r\n <img style=\"width: 167px; height: 64px;\" class=\"layout-topbar-logo-full\"\r\n src=\"{{ codigo != '1'? logoComprimido : 'assets/images/logo-sara.png'}}\">\r\n\r\n\r\n <svg width=\"41\" height=\"46\" viewBox=\"0 0 41 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"layout-topbar-logo-slim\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M40.7209 8.57017C40.6612 8.42729 40.5217 8.33484 40.367 8.33484H38.2593L39.407 6.95037C39.502 6.83653 39.5211 6.67837 39.4583 6.54466C39.3955 6.41095 39.2606 6.32537 39.112 6.32537H15.9826L9.42361 0.10518C9.29643 -0.0147766 9.10336 -0.0346421 8.95625 0.0585729L5.27643 2.36221L5.27336 2.36526L5.26953 2.36679L0.92315 5.21978C0.912424 5.22666 0.907061 5.23735 0.897101 5.24576C0.875649 5.26257 0.857261 5.28091 0.840406 5.30154C0.825083 5.31987 0.812825 5.33821 0.801332 5.35884C0.789074 5.381 0.780646 5.40316 0.772985 5.42684C0.765323 5.45129 0.760726 5.47574 0.757662 5.50172C0.756895 5.51471 0.75 5.5254 0.75 5.53916C0.75 5.55138 0.755363 5.56055 0.756895 5.57278C0.759194 5.59799 0.764557 5.62168 0.772218 5.64689C0.77988 5.6721 0.788308 5.69579 0.801332 5.71948C0.806695 5.72941 0.807461 5.74011 0.813591 5.75004C0.818954 5.75844 0.828914 5.7615 0.835043 5.76914C0.861858 5.80352 0.89327 5.83179 0.930046 5.85471C0.943836 5.86312 0.954563 5.87382 0.968353 5.88069C1.01892 5.90514 1.07408 5.92119 1.13384 5.92119H6.36743L7.54883 8.86052L7.55036 8.86281V8.8651L15.2364 27.2292L10.6993 31.3353C10.582 31.4415 10.5422 31.608 10.5997 31.7555C10.6564 31.903 10.7989 32 10.9567 32H17.4889C17.5395 32 17.5893 31.9893 17.636 31.9702C17.6827 31.9511 17.7249 31.9228 17.7601 31.8877L21.194 28.4502C21.1986 28.4555 21.2001 28.4624 21.2055 28.4678L24.457 31.8808C24.5298 31.958 24.6256 31.9794 24.7367 32C30.6399 31.9671 39.5962 31.9373 40.0176 31.9809C40.0574 31.9939 40.098 32 40.1386 32C40.2697 32 40.3976 31.9335 40.4689 31.8182C40.6903 31.459 40.6887 31.4552 29.3765 20.2603L40.6374 8.98888C40.7477 8.87733 40.7799 8.71305 40.7209 8.57017ZM38.2983 7.08867L37.2663 8.33484H18.1018L16.7879 7.08867H38.2983ZM9.11178 0.862361L16.9909 8.33484H8.16329L5.95447 2.83898L9.11178 0.862361ZM2.41178 5.15636L5.29864 3.2615L6.0602 5.15636H2.41178ZM21.7602 27.9406C21.7502 27.9299 21.7364 27.9253 21.7257 27.9169L24.4701 25.1701V30.7844L21.7602 27.9406ZM39.2545 31.213C37.808 31.1916 34.214 31.1825 25.2362 31.2321V24.6513C25.2362 24.581 25.2117 24.5183 25.1788 24.461L28.8364 20.7997C32.4434 24.3701 37.5498 29.4519 39.2545 31.213ZM17.6222 30.9425L8.47894 9.0989H37.3506C37.3782 9.10501 37.4058 9.11342 37.4334 9.11342C37.4556 9.11342 37.4763 9.10272 37.4985 9.0989H39.4445L17.6222 30.9425Z\"\r\n fill=\"var(--topbar-item-text-color)\" />\r\n </svg>\r\n </a>\r\n <a #menuButton class=\"layout-menu-button\" (click)=\"onMenuButtonClick()\" pRipple>\r\n <i class=\"pi pi-chevron-right\"></i>\r\n </a>\r\n\r\n <a #mobileMenuButton class=\"layout-topbar-mobile-button\" (click)=\"onMobileTopbarMenuButtonClick()\" pRipple>\r\n <i class=\"pi pi-ellipsis-v\"></i>\r\n </a>\r\n </div>\r\n\r\n <div class=\"layout-topbar-end\">\r\n <!-- Se comentan las opciones de KIT y Utilities -->\r\n <div class=\"layout-topbar-actions-start\" style=\"line-height: 15px;\">\r\n <label class=\"empresa\">Empresa: {{empresa}} </label>\r\n <label class=\"rol\"><span class=\"font-medium\">Rol:</span> {{rol}} </label>\r\n <label class=\"conexion\"><span class=\"font-medium\">Conexion:</span> {{conexion}} </label>\r\n <!-- <p-megaMenu [model]=\"model\" styleClass=\"layout-megamenu\"></p-megaMenu> -->\r\n </div>\r\n <div class=\"layout-topbar-actions-end\">\r\n <ul class=\"layout-topbar-items\">\r\n <!--CAMBIAR TEMA-->\r\n <li class=\"flex align-items-center eleccion-modo\">\r\n <!-- <i class=\"pi pi-sun mr-1\"></i> -->\r\n <p-inputSwitch [(ngModel)]=\"switch\" (onChange)=\"cambioSwitch($event)\"></p-inputSwitch>\r\n <!-- <i class=\"pi pi-moon ml-1\"></i> -->\r\n </li>\r\n <li class=\"layout-topbar-search\">\r\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\r\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple (click)=\"focusSearchInput()\">\r\n <i class=\"pi pi-search\"></i>\r\n </a>\r\n <!--BUSCADOR-->\r\n <div class=\"layout-search-panel ng-hidden p-input-filled\">\r\n <i class=\"pi pi-search\"></i>\r\n <!-- <input #searchInput type=\"text\" pInputText placeholder=\"Search\"> -->\r\n <p-autoComplete #searchInput placeholder=\"Buscar una tarea...\" (click)=\"searchClick = true\"\r\n [dropdown]=\"false\" [(ngModel)]=\"tareaSeleccionadas\" [suggestions]=\"tareasFiltradas\"\r\n (completeMethod)=\"filterTarea($event)\" (onSelect)=\"tareaSeleccion()\" field=\"descripcion\"\r\n [ngStyle]=\"{ 'width': '70%', 'height': '40px', 'margin-left': '11%' }\" styleClass=\"w-full h-full\" icon=\"pi pi-search\">\r\n </p-autoComplete>\r\n\r\n\r\n <div class=\"layout-search-panel ng-hidden p-input-filled\">\r\n <i class=\"pi pi-search\"></i>\r\n <!-- <input #searchInput type=\"text\" pInputText placeholder=\"Search\"> -->\r\n <p-autoComplete #searchInput placeholder=\"Buscar una tarea...\" (click)=\"searchClick = true\"\r\n [dropdown]=\"false\" [(ngModel)]=\"tareaSeleccionadas\" [suggestions]=\"tareasFiltradas\"\r\n (completeMethod)=\"filterTarea($event)\" (onSelect)=\"tareaSeleccion()\" field=\"descripcion\"\r\n [ngStyle]=\"{ 'width': '70%', 'height': '40px', 'align-items': 'center' }\" styleClass=\"w-full h-full\">\r\n </p-autoComplete>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"focusSearchInput()\"\r\n class=\"p-button-rounded p-button-text p-button-plain\" pStyleClass=\".layout-search-panel\"\r\n leaveToClass=\"ng-hidden\" leaveActiveClass=\"px-fadeout\"></button>\r\n </div>\r\n </div>\r\n </li>\r\n <!-- <li>\r\n NOTIFICACIONES\r\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\" leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\r\n <i class=\"pi pi-bell\" pBadge severity=\"warning\"></i>\r\n </a>\r\n <div class=\"ng-hidden\">\r\n <ul class=\"list-none p-0 m-0\">\r\n <li class=\"px-3 py-1\">\r\n <span>You have <b>4</b> new notifications</span>\r\n </li>\r\n <li class=\"p-3\">\r\n <div class=\"flex align-items-center\">\r\n <img src=\"assets/demo/images/avatar/avatar-1.png\" />\r\n <div class=\"flex flex-column ml-3 flex-1\">\r\n <div class=\"flex align-items-center justify-content-between mb-1\">\r\n <span class=\"font-bold\">Jerome Bell</span>\r\n <small>42 mins ago</small>\r\n </div>\r\n <span class=\"text-sm line-height-3\">How to write content about your photographs?</span>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"p-3\">\r\n <div class=\"flex align-items-center\">\r\n <img src=\"assets/demo/images/avatar/avatar-2.png\"/>\r\n <div class=\"flex flex-column ml-3 flex-1\">\r\n <div class=\"flex align-items-center justify-content-between mb-1\">\r\n <span class=\"fs-small font-bold\">Cameron Williamson</span>\r\n <small>48 mins ago</small>\r\n </div>\r\n <span class=\"text-sm line-height-3\">Start a blog to reach your creative peak.</span>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"p-3\">\r\n <div class=\"flex align-items-center\">\r\n <img src=\"assets/demo/images/avatar/avatar-3.png\"/>\r\n <div class=\"flex flex-column ml-3 flex-1\">\r\n <div class=\"flex align-items-center justify-content-between mb-1\">\r\n <span class=\"fs-small font-bold\">Anna Miles</span>\r\n <small>1 day ago</small>\r\n </div>\r\n <span class=\"text-sm line-height-3\">Caring is the new marketing</span>\r\n </div>\r\n </div>\r\n </li>\r\n <li class=\"p-3\">\r\n <div class=\"flex align-items-center\">\r\n <img src=\"assets/demo/images/avatar/avatar-4.png\"/>\r\n <div class=\"flex flex-column ml-3 flex-1\">\r\n <div class=\"flex align-items-center justify-content-between mb-1\">\r\n <span class=\"fs-small font-bold\">Arlene Mccoy</span>\r\n <small>4 day ago</small>\r\n </div>\r\n <span class=\"text-sm line-height-3\">Starting your traveling blog with Vasco.</span>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li> -->\r\n <li>\r\n <!-- MODULOS -->\r\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\r\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\r\n <i class=\"pi pi-table\"></i>\r\n </a>\r\n <div class=\"ng-hidden\">\r\n <div class=\"flex flex-wrap p-2\">\r\n <div class=\"w-4 flex-column\" *ngFor=\"let modulo of modulosDisponibles\">\r\n <a class=\"flex text-color\" href=\"{{utilsService.obtenerBase() + (url.toString().includes('admonPortal') ? '/admonPortal/inicio' : '/inicio')}}\" pRipple (click)=\"cambioModulo(modulo, true)\">\r\n <button pButton class=\"p-button-rounded mb-2\" style=\"width:40px; height: 40px; min-width:40px; background:transparent;\"\r\n pRipple>\r\n <img style=\"height: 3.5rem; width:3.5rem;margin-left: -10px;\" [src]=\"'assets/modulos/' + (modulo.icono.replace('.png', '.webp'))\" />\r\n\r\n </button>\r\n <span style=\"font-size: 10px; text-align: left; margin-left: 10px\">{{ modulo.descripcion }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n <li>\r\n <a pStyleClass=\"@next\" enterFromClass=\"ng-hidden\" enterActiveClass=\"px-scalein\" leaveToClass=\"ng-hidden\"\r\n leaveActiveClass=\"px-fadeout\" [hideOnOutsideClick]=\"true\" pRipple>\r\n <div class=\"iniciales-usuario\" [style.background-color]=\"color\">\r\n <label class=\"font-semibold\">{{iniciales}}</label>\r\n </div>\r\n </a>\r\n <div class=\"ng-hidden\">\r\n <ul class=\"list-none p-0 m-0\">\r\n <!-- Funciones Apagadas de perfil -->\r\n <!-- <li>\r\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\r\n <i class=\"pi pi-cog mr-2\"></i>\r\n <span>Settings</span>\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\r\n <i class=\"pi pi-file-o mr-2\"></i>\r\n <span>Terms of Usage</span>\r\n </a>\r\n </li>\r\n <li>\r\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\" pRipple>\r\n <i class=\"pi pi-compass mr-2\"></i>\r\n <span>Support</span>\r\n </a>\r\n </li> -->\r\n <li>\r\n <a class=\"cursor-pointer flex align-items-center py-2 hover:surface-hover transition-duration-150 transition-all px-3 py-2\"\r\n pRipple (click)=\"salir()\">\r\n <i class=\"pi pi-power-off mr-2\"></i>\r\n <span>Cerrar sesión</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n","import {Component} from '@angular/core';\r\nimport { GeneralPipe } from '../webcommon/pipes/general.pipe';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n imports: [ButtonModule],\r\n standalone: true,\r\n templateUrl: './app.footer.component.html'\r\n})\r\nexport class AppFooterComponent {\r\n\r\n constructor(public layoutService: LayoutService ) {}\r\n}\r\n","<div class=\"layout-footer\">\r\n <img id=\"footer-logo\" [id]=\"'logoImg'\" [src]=\"'assets/images/logo-union-simple.png'\" alt=\"ultima-footer-logo\" />\r\n <img id=\"footer-logo\" [id]=\"'logoName'\" [src]=\" 'assets/images/texto-union-soluciones.png'\" alt=\"ultima-footer-logo\" />\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n icon=\"pi pi-facebook fs-large\"\r\n class=\"p-button-rounded p-button-text p-button-plain ml-auto mr-2\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n icon=\"pi pi-twitter fs-large\"\r\n class=\"p-button-rounded p-button-text p-button-plain mr-2\"\r\n ></button>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\n\r\n@Component({\r\n selector: 'app-rightmenu',\r\n imports: [SidebarModule],\r\n standalone: true,\r\n templateUrl: './app.rightmenu.component.html'\r\n})\r\nexport class AppRightMenuComponent {\r\n\r\n constructor(public layoutService: LayoutService) { }\r\n\r\n get rightMenuActive(): boolean {\r\n return this.layoutService.state.rightMenuActive;\r\n }\r\n\r\n set rightMenuActive(_val: boolean) {\r\n this.layoutService.state.rightMenuActive = _val;\r\n }\r\n\r\n\r\n}\r\n","<p-sidebar [(visible)]=\"rightMenuActive\" position=\"right\" [blockScroll]=\"true\" [showCloseIcon]=\"false\" [baseZIndex]=\"1000\" [transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\">\r\n <div class=\"p-3\">\r\n <div class=\"flex flex-column mb-5\">\r\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">ONLINE MEMBERS</h6>\r\n <div class=\"flex flex-row flex-wrap gap-1\">\r\n <!--<img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-1.png\" alt=\"avatar-1\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-2.png\" alt=\"avatar-2\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-3.png\" alt=\"avatar-3\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-4.png\" alt=\"avatar-4\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-5.png\" alt=\"avatar-5\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-6.png\" alt=\"avatar-6\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-7.png\" alt=\"avatar-7\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-8.png\" alt=\"avatar-8\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-9.png\" alt=\"avatar-9\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-10.png\" alt=\"avatar-10\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-11.png\" alt=\"avatar-11\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-12.png\" alt=\"avatar-12\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-13.png\" alt=\"avatar-13\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-14.png\" alt=\"avatar-14\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-15.png\" alt=\"avatar-15\"/>\r\n <img class=\"cursor-pointer\" style=\"width: 32px;\" src=\"assets/demo/images/avatar/avatar-16.png\" alt=\"avatar-16\"/>-->\r\n </div>\r\n <span class=\"mt-3\"><b class=\"text-primary\">+19</b> Costumers</span>\r\n </div>\r\n <div class=\"flex flex-column mb-5\">\r\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">LATEST ACTIVITY</h6>\r\n <div class=\"flex pt-2\">\r\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\r\n <div class=\"flex flex-column\">\r\n <span class=\"font-bold mb-1\">New Sale</span>\r\n <span class=\"mb-2 line-height-3\">Richard Jones has purchased a blue t-shirt for $79.</span>\r\n <span class=\"flex align-items-center\">\r\n <!--<img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-1.png\" alt=\"\"/>-->\r\n <small>Emmy Adams, 21.40</small>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex pt-3\">\r\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\r\n <div class=\"flex flex-column\">\r\n <span class=\"font-bold mb-1\">Withdrawal Initiated</span>\r\n <span class=\"mb-2 line-height-3\">Your request for withdrawal of $2500 has been initiated.</span>\r\n <span class=\"flex align-items-center\">\r\n <!--<img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-2.png\" alt=\"avatar-2\"/>-->\r\n <small>Emily Walter, 21.40</small>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex pt-3\">\r\n <i class=\"pi pi-images align-self-start p-2 border-1 border-transparent border-circle mr-2\" style=\"background-color:rgba(0,0,0,.12)\"></i>\r\n <div class=\"flex flex-column\">\r\n <span class=\"font-bold mb-1\">Question Received</span>\r\n <span class=\"mb-2 line-height-3\">Jane Davis has posted a new question about your product.</span>\r\n <span class=\"flex align-items-center\">\r\n <!-- <img class=\"mr-2\" src=\"assets/demo/images/avatar/activity-3.png\" alt=\"avatar-3\"/>-->\r\n <small>Jane Davis, 21.45</small>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-column\">\r\n <h6 class=\"pb-2 mb-2 border-bottom-1 surface-border\">NEXT EVENTS</h6>\r\n <ul class=\"m-0 list-none p-0\">\r\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-eye mr-3\"></i>A/B Test</li>\r\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-video mr-3\"></i>Video Shoot</li>\r\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-sitemap mr-3\"></i>Board Meeting</li>\r\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-compass mr-3\"></i>Q4 Planning</li>\r\n <li class=\"py-3 px-2 border-round-md hover:surface-hover cursor-pointer\"><i class=\"pi pi-palette mr-3\"></i>Design Training</li>\r\n </ul>\r\n </div>\r\n </div>\r\n</p-sidebar>\r\n","import { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { MenuService } from '../core/servicios/menu.service';\r\nimport { UtilsService } from '../core/servicios/utils.service';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\n\r\ninterface Breadcrumb {\r\n label: string;\r\n url?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n imports: [BreadcrumbModule],\r\n standalone: true,\r\n templateUrl: './app.breadcrumb.component.html'\r\n})\r\nexport class AppBreadcrumbComponent implements OnInit, OnDestroy {\r\n private subscription = new Subscription();\r\n items: MenuItem[] = [];\r\n home: MenuItem;\r\n\r\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\r\n constructor(\r\n private router: Router,\r\n private menuService: MenuService,\r\n private utilsService: UtilsService,\r\n private cd: ChangeDetectorRef // Importando ChangeDetectorRef\r\n ) {\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\r\n const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: Breadcrumb[] = [];\r\n this.addBreadcrumb(root, [], breadcrumbs);\r\n this._breadcrumbs$.next(breadcrumbs);\r\n this.cd.detectChanges(); // Marcando para detección de cambios\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription.add(\r\n this.menuService.breadcrumb.subscribe(items => {\r\n this.items = items;\r\n this.cd.detectChanges(); // Marcando para detección de cambios\r\n })\r\n );\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/admonPortal/inicio' };\r\n } else {\r\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/inicio' };\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\r\n const breadcrumb = route.data['breadcrumb'];\r\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n breadcrumbs.push({\r\n label: route.data['breadcrumb'],\r\n url: '/' + routeUrl.join('/'),\r\n });\r\n }\r\n\r\n if (route.firstChild) {\r\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n }\r\n }\r\n}\r\n","<div class=\"layout-breadcrumb-container\">\r\n <nav class=\"layout-breadcrumb\">\r\n <ol>\r\n <!-- <li><i class=\"pi pi-home\"></i></li>\r\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\r\n <li><i class=\"pi pi-angle-right\"></i></li>\r\n <li><span>{{item.label}}</span></li>\r\n </ng-template> -->\r\n <p-breadcrumb [model]=\"items\" [home]=\"home\" styleClass=\"layout-breadcrumb pl-4 py-2\"></p-breadcrumb>\r\n <div class=\"layout-breadcrumb-buttons flex align-items-center pr-3\">\r\n <!-- <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain mr-1\"></button> -->\r\n </div>\r\n </ol>\r\n </nav>\r\n <!-- <div class=\"layout-breadcrumb-buttons\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-cloud-upload\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-bookmark\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain\"></button>\r\n </div> -->\r\n</div>\r\n","import { AfterViewInit, Component, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '../../core/servicios/auth.service';\r\nimport { MenuService } from '../..//core/servicios/menu.service';\r\nimport { StorageService } from '../../core/servicios/storage.service';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\nimport { ModulosModel } from '../../seguridad/modelos/ModulosModel';\r\nimport { TareasModel } from '../../seguridad/modelos/TareasModel';\r\nimport { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { trigger, style, transition, animate, AnimationEvent } from '@angular/animations';\r\nimport { CargarControlFuncionalidadService } from '../servicios/cargar-control-funcionalidad.service';\r\nimport { UtilsService } from '../servicios/utils.service';\r\nimport { StyleClassModule } from 'primeng/styleclass';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AppSidebarComponent } from '../../layout/app.sidebar.component';\r\nimport { AppTopbarComponent } from '../../layout/app.topbar.component';\r\nimport { AppFooterComponent } from '../../layout/app.footer.component';\r\nimport { AppRightMenuComponent } from '../../layout/app.rightmenu.component';\r\nimport { AppBreadcrumbComponent } from '../../layout/app.breadcrumb.component';\r\n@Component({\r\n selector: 'app-plantilla-general',\r\n imports: [StyleClassModule, CommonModule, AutoCompleteModule, FormsModule, AppSidebarComponent, AppBreadcrumbComponent, AppTopbarComponent, AppRightMenuComponent,AppFooterComponent], \r\n standalone: true,\r\n templateUrl: './plantilla-general.template.html',\r\n styleUrls: ['./plantilla-general.template.scss'],\r\n animations: [\r\n trigger('topbarActionPanelAnimation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\r\n animate('.12s cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 1, transform: '*' })),\r\n ]),\r\n transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n})\r\nexport class PlantillaGeneralTemplate implements OnInit, AfterViewInit, OnDestroy {\r\n modulo: string;\r\n intervalId: number;\r\n menuActive: boolean = true;\r\n mobileMenuActive: boolean = false;\r\n mobileTopbarActive: boolean = false;\r\n menuClick: boolean = false;\r\n topbarItemClick: boolean = false;\r\n activeTopbarItem: string = '';\r\n search: boolean = false;\r\n searchClick: boolean = false;\r\n\r\n documentClickListener!: () => void;\r\n\r\n nombreEmpresa: string = '1 - Unión Soluciones';\r\n modulosDisponibles: ModulosModel[] = new Array();\r\n tareaSeleccionadas: TareasModel;\r\n tareasFiltradas: TareasModel[];\r\n\r\n @ViewChild('searchInput') searchInputViewChild!: AutoComplete;\r\n\r\n\r\n constructor(\r\n private primeConfig: PrimeNGConfig,\r\n private renderer: Renderer2,\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private storage: StorageService,\r\n private activatedRoute: ActivatedRoute,\r\n private utilsService: UtilsService,\r\n private storageService: StorageService,\r\n private controlFuncionalidad: CargarControlFuncionalidadService\r\n ) {}\r\n\r\n /**\r\n * Activa ripple de PrimeNG para las animaciones de los botones\r\n */\r\n ngOnInit(): void {\r\n this.modulosDisponibles = JSON.parse(this.storage.getItem('modulos'));\r\n this.activatedRoute.data.subscribe((v) =>{ \r\n //this.modulosDisponibles = v['modulosDisponibles']\r\n this.primeConfig.ripple = true;\r\n this.modulo = this.storage.getItem('moduloSeleccionado')\r\n });\r\n }\r\n\r\n /**\r\n * Después de crear la vista y sub-vistas inicializa las tareas y eventos básicos como\r\n * el timer de sesión, cargar el menú y eventos del html para ocultar menús.\r\n */\r\n ngAfterViewInit(): void {\r\n this.documentClickListener = this.renderer.listen('body', 'click', () => {\r\n if (!this.topbarItemClick) {\r\n this.activeTopbarItem = '';\r\n }\r\n\r\n if (!this.menuClick) {\r\n if (this.mobileMenuActive) {\r\n this.mobileMenuActive = false;\r\n }\r\n }\r\n\r\n if (!this.searchClick) {\r\n this.search = false;\r\n }\r\n\r\n this.searchClick = false;\r\n this.topbarItemClick = false;\r\n this.menuClick = false;\r\n this.modulo = this.storage.getItem('moduloSeleccionado')\r\n let moduloSeleccionado: ModulosModel = new ModulosModel(this.modulo, '');\r\n this.cambioModulo(moduloSeleccionado, false)\r\n });\r\n\r\n this.menuService.loadTareas().subscribe(() => {\r\n setTimeout(() => {\r\n this.menuService.setTareasDelModulo(this.modulo);\r\n });\r\n });\r\n\r\n // Cada 5 minutos verifica que el token no haya expirado\r\n this.intervalId = window.setInterval(() => {\r\n if (!this.authService.isTokenValid()) {\r\n this.authService.deleteToken();\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/timeout');\r\n } else {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/timeout');\r\n }\r\n }\r\n }, 300_000);\r\n }\r\n\r\n /**\r\n * Limpia el componente de las subscripciones\r\n */\r\n ngOnDestroy(): void {\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n /**\r\n * Muestra/Esconte el menú principal de navegación\r\n * @param event\r\n */\r\n onMenuButtonClick(event: { preventDefault: () => void }): void {\r\n this.menuActive = !this.menuActive;\r\n this.menuClick = true;\r\n\r\n if (this._isMobile()) {\r\n this.mobileMenuActive = !this.mobileMenuActive;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n /**\r\n * Si el sitio esta en móviles, muestra/esconde el menú de la barra superior (los tres puntos)\r\n * @param event\r\n */\r\n onTopbarMobileButtonClick(event: { preventDefault: () => void }): void {\r\n this.mobileTopbarActive = !this.mobileTopbarActive;\r\n event.preventDefault();\r\n }\r\n\r\n /**\r\n * Muestra/Esconde los menus emergentes de la barra superior (Buscar, Módulos y Perfil).\r\n * @param event\r\n * @param item\r\n */\r\n onTopbarItemClick(event: { preventDefault: () => void }, item: string): void {\r\n this.topbarItemClick = true;\r\n\r\n if (this.activeTopbarItem === item) {\r\n this.activeTopbarItem = '';\r\n } else {\r\n this.activeTopbarItem = item;\r\n }\r\n\r\n if (item === 'search') {\r\n this.search = !this.search;\r\n this.searchClick = !this.searchClick;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n /**\r\n * Si la pantalla tiene un ancho menor o igual a 991 es un dispositivo móvil.\r\n * @returns boolean\r\n */\r\n private _isMobile(): boolean {\r\n return window.innerWidth <= 991;\r\n }\r\n\r\n onSearchAnimationEnd(event: AnimationEvent) {\r\n switch (event.toState) {\r\n case 'visible':\r\n //this.searchInputViewChild.f;\r\n break;\r\n }\r\n }\r\n\r\n salir() {\r\n this.authService.deleteToken();\r\n this.controlFuncionalidad.eliminarFuncionalidades();\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\r\n }\r\n\r\n cambioModulo(modulo: ModulosModel, navegar: boolean): void {\r\n this.storageService.setItem('moduloSeleccionado', modulo.llave)\r\n this.menuService.setTareasDelModulo(modulo.llave);\r\n if (navegar){\r\n this.router.navigateByUrl( this.utilsService.obtenerBase() + '/inicio');\r\n }\r\n }\r\n\r\n filterTarea(event) {\r\n const filtered: TareasModel[] = [];\r\n let tareas: TareasModel[] = this.storageService.getItem('__tareas') != null ? JSON.parse(this.storageService.getItem('__tareas')) : '';\r\n const query = event.query;\r\n for (let i = 0; i < tareas.length; i++) {\r\n const country = tareas[i];\r\n if (country.descripcion.toLowerCase().includes(query.toLowerCase())) {\r\n filtered.push(country);\r\n }\r\n }\r\n this.tareasFiltradas = filtered;\r\n }\r\n\r\n tareaSeleccion() {\r\n if (this.tareaSeleccionadas != null) {\r\n this.router.navigate([this.utilsService.obtenerBase() + this.tareaSeleccionadas.urlprincipal.replace(/.jsf/, '')]);\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"layout-wrapper p-input-filled layout-menu-static layout-menu-light layout-topbar-dark\"\r\n [ngClass]=\"{'layout-menu-active': menuActive,\r\n 'layout-menu-mobile-active': mobileMenuActive,\r\n 'layout-topbar-mobile-active': mobileTopbarActive }\"\r\n>\r\n <!--INICIO TOPBAR-->\r\n <div class=\"layout-topbar shadow-4\">\r\n <div class=\"layout-topbar-left\">\r\n <a class=\"layout-topbar-logo\">{{ nombreEmpresa | uppercase }}</a>\r\n\r\n <a class=\"layout-menu-button shadow-6\" (click)=\"onMenuButtonClick($event)\" pRipple>\r\n <i class=\"pi pi-chevron-right\"></i>\r\n </a>\r\n\r\n <a class=\"layout-topbar-mobile-button\" (click)=\"onTopbarMobileButtonClick($event)\" pRipple>\r\n <i class=\"pi pi-ellipsis-v fs-large\"></i>\r\n </a>\r\n </div>\r\n\r\n <div class=\"layout-topbar-right\" [ngClass]=\"{ 'layout-topbar-mobile-active': mobileTopbarActive }\">\r\n <div class=\"layout-topbar-actions-left\"></div>\r\n\r\n <div class=\"layout-topbar-actions-right\">\r\n <ul class=\"layout-topbar-items\">\r\n <li class=\"layout-topbar-item layout-search-item\">\r\n <a class=\"layout-topbar-action rounded-circle\" (click)=\"onTopbarItemClick($event, 'search')\" pRipple>\r\n <i class=\"pi pi-search fs-large\"></i>\r\n </a>\r\n\r\n <div\r\n class=\"layout-search-panel p-inputgroup\"\r\n [@topbarActionPanelAnimation]=\"'visible'\"\r\n *ngIf=\"search\"\r\n (@topbarActionPanelAnimation.done)=\"onSearchAnimationEnd($event)\">\r\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-search\"></i></span>\r\n <p-autoComplete\r\n #searchInput\r\n placeholder=\"Buscar una tarea...\"\r\n (click)=\"searchClick = true\"\r\n [dropdown]=\"false\"\r\n [(ngModel)]=\"tareaSeleccionadas\"\r\n [suggestions]=\"tareasFiltradas\"\r\n (completeMethod)=\"filterTarea($event)\"\r\n (onSelect)=\"tareaSeleccion()\"\r\n field=\"descripcion\"\r\n styleClass=\"w-full h-full\"\r\n >\r\n </p-autoComplete>\r\n <span class=\"p-inputgroup-addon\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-plain\"\r\n (click)=\"searchClick = false\"\r\n ></button>\r\n </span>\r\n </div>\r\n </li>\r\n\r\n <li class=\"layout-topbar-item app\">\r\n <a class=\"layout-topbar-action rounded-circle\" (click)=\"onTopbarItemClick($event, 'modules')\" pRipple>\r\n <i class=\"pi pi-table fs-large\"></i>\r\n </a>\r\n\r\n <div\r\n class=\"layout-topbar-action-panel shadow-6\"\r\n [@topbarActionPanelAnimation]=\"'visible'\"\r\n *ngIf=\"activeTopbarItem === 'modules'\"\r\n >\r\n <div class=\"grid grid-nogutter\">\r\n <div class=\"layout-topbar-action-item col-4\" *ngFor=\"let modulo of modulosDisponibles\">\r\n <a class=\"flex align-items-center text-color\" href=\"/inicio\" pRipple (click)=\"cambioModulo(modulo, true)\">\r\n <i class=\"action app-bgcolor\">\r\n <img [src]=\"'assets/modulos/' + modulo.icono\" /> \r\n </i>\r\n <span style=\"font-size: 10px; text-align: left\">{{ modulo.descripcion }}</span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n <li class=\"layout-topbar-item\">\r\n <a\r\n class=\"layout-topbar-action flex flex-row justify-content-center align-items-center px-2 rounded-circle\"\r\n (click)=\"onTopbarItemClick($event, 'profile')\"\r\n pRipple\r\n >\r\n <img src=\"\" alt=\"avatar\" style=\"width: 32px; height: 32px\" />\r\n </a>\r\n\r\n <ul\r\n class=\"layout-topbar-action-panel shadow-6\"\r\n [@topbarActionPanelAnimation]=\"'visible'\"\r\n *ngIf=\"activeTopbarItem === 'profile'\"\r\n >\r\n <li class=\"layout-topbar-action-item\">\r\n <a class=\"flex flex-row align-items-center\" pRipple (click)=\"salir()\">\r\n <i class=\"pi pi-power-off mr-2\"></i>\r\n <span>Logout</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n <!--FIN TOPBAR-->\r\n <!--<div class=\"menu-wrapper\" (click)=\"menuClick = true\">\r\n <div class=\"layout-menu-container\">\r\n \r\n </div>\r\n </div>\r\n <p-sidebar [(visible)]=\"menuClick\">\r\n <app-menu [modulo]=\"modulo\"></app-menu>\r\n </p-sidebar>\r\n\r\n <div class=\"layout-main\">\r\n <app-breadcrumb></app-breadcrumb>\r\n <app-carga-breadcrumb></app-carga-breadcrumb>\r\n\r\n <div class=\"layout-content\">\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"us-main-content card p-3\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <app-footer></app-footer>\r\n </div>\r\n</div>-->\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n \r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ],\r\n providers: [\r\n ],\r\n exports: [\r\n ],\r\n})\r\nexport class CoreModule {\r\n public static forRoot(): ModuleWithProviders<any> {\r\n return {\r\n ngModule: CoreModule,\r\n providers: [\r\n ],\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ],\r\n exports: [\r\n ]\r\n})\r\nexport class SharedLibModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ]\r\n})\r\nexport class AppLayoutModule { }\r\n","import { ChangeDetectorRef, Component, OnDestroy, Renderer2, ViewChild } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterModule, RouterOutlet } from '@angular/router';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { MenuService } from './app.menu.service';\r\nimport { AppSidebarComponent } from './app.sidebar.component';\r\nimport { AppTopbarComponent } from './app.topbar.component';\r\nimport { LayoutService } from './service/app.layout.service';\r\nimport { AuthService } from '../core/servicios/auth.service';\r\nimport { AppFooterComponent } from './app.footer.component';\r\nimport { AppRightMenuComponent } from './app.rightmenu.component';\r\nimport { AppBreadcrumbComponent } from './app.breadcrumb.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-layout',\r\n standalone: true,\r\n imports: [RouterOutlet, RouterModule, AppFooterComponent, AppTopbarComponent, AppRightMenuComponent, AppSidebarComponent, AppBreadcrumbComponent, FormsModule, CommonModule,],\r\n templateUrl: './app.layout.component.html'\r\n})\r\nexport class AppLayoutComponent implements OnDestroy {\r\n\r\n overlayMenuOpenSubscription: Subscription;\r\n\r\n topbarMenuOpenSubscription: Subscription;\r\n\r\n menuProfileOpenSubscription: Subscription;\r\n\r\n menuOutsideClickListener: any;\r\n\r\n menuScrollListener: any;\r\n\r\n topbarMenuOutsideClickListener: any;\r\n\r\n menuProfileOutsideClickListener: any;\r\n\r\n @ViewChild(AppSidebarComponent) appSidebar!: AppSidebarComponent;\r\n\r\n @ViewChild(AppTopbarComponent) appTopbar!: AppTopbarComponent;\r\n\r\n autoServicio: boolean = false;\r\n\r\n constructor(private menuService: MenuService, public layoutService: LayoutService, public renderer: Renderer2, public router: Router, private cd: ChangeDetectorRef, private authService: AuthService) {\r\n this.autoServicio = (authService.getTokenKey('aplicacion') == '10')\r\n this.hideMenuProfile();\r\n \r\n this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\r\n this.hideTopbarMenu();\r\n \r\n if (!this.menuOutsideClickListener) {\r\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\r\n const isOutsideClicked = !(this.appSidebar.el.nativeElement.isSameNode(event.target) || this.appSidebar.el.nativeElement.contains(event.target)\r\n || this.appTopbar.menuButton.nativeElement.isSameNode(event.target) || this.appTopbar.menuButton.nativeElement.contains(event.target));\r\n if (isOutsideClicked) {\r\n this.hideMenu();\r\n }\r\n });\r\n }\r\n\r\n if ((this.layoutService.isHorizontal() || this.layoutService.isSlim()|| this.layoutService.isSlimPlus()) && !this.menuScrollListener) {\r\n this.menuScrollListener = this.renderer.listen(this.appSidebar.menuContainer.nativeElement, 'scroll', event => {\r\n if (this.layoutService.isDesktop()) {\r\n this.hideMenu();\r\n }\r\n });\r\n }\r\n\r\n if (this.layoutService.state.staticMenuMobileActive) {\r\n this.blockBodyScroll();\r\n }\r\n });\r\n\r\n this.topbarMenuOpenSubscription = this.layoutService.topbarMenuOpen$.subscribe(() => {\r\n if (!this.topbarMenuOutsideClickListener) {\r\n this.topbarMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {\r\n const isOutsideClicked = !(this.appTopbar.el.nativeElement.isSameNode(event.target) || this.appTopbar.el.nativeElement.contains(event.target)\r\n || this.appTopbar.mobileMenuButton.nativeElement.isSameNode(event.target) || this.appTopbar.mobileMenuButton.nativeElement.contains(event.target));\r\n if (isOutsideClicked) {\r\n this.hideTopbarMenu();\r\n }\r\n });\r\n }\r\n\r\n if (this.layoutService.state.staticMenuMobileActive) {\r\n this.blockBodyScroll();\r\n }\r\n });\r\n\r\n this.menuProfileOpenSubscription = this.layoutService.menuProfileOpen$.subscribe(() => {\r\n this.hideMenu();\r\n\r\n if (!this.menuProfileOutsideClickListener) {\r\n this.menuProfileOutsideClickListener = this.renderer.listen('document', 'click', event => {\r\n const isOutsideClicked = !(this.appSidebar.menuProfile.el.nativeElement.isSameNode(event.target) || this.appSidebar.menuProfile.el.nativeElement.contains(event.target));\r\n if (isOutsideClicked) {\r\n this.hideMenuProfile();\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n this.hideMenu();\r\n this.hideTopbarMenu();\r\n this.hideMenuProfile();\r\n });\r\n }\r\n\r\n blockBodyScroll(): void {\r\n if (document.body.classList) {\r\n document.body.classList.add('blocked-scroll');\r\n }\r\n else {\r\n document.body.className += ' blocked-scroll';\r\n }\r\n }\r\n\r\n unblockBodyScroll(): void {\r\n if (document.body.classList) {\r\n document.body.classList.remove('blocked-scroll');\r\n }\r\n else {\r\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' +\r\n 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n }\r\n }\r\n\r\n hideMenu() {\r\n this.layoutService.state.overlayMenuActive = false;\r\n this.layoutService.state.staticMenuMobileActive = false;\r\n this.layoutService.state.menuHoverActive = false;\r\n this.menuService.reset();\r\n \r\n if (this.menuOutsideClickListener) {\r\n this.menuOutsideClickListener();\r\n this.menuOutsideClickListener = null;\r\n }\r\n\r\n if (this.menuScrollListener) {\r\n this.menuScrollListener();\r\n this.menuScrollListener = null;\r\n }\r\n this.unblockBodyScroll();\r\n }\r\n\r\n hideTopbarMenu() {\r\n this.layoutService.state.topbarMenuActive = false;\r\n \r\n if (this.topbarMenuOutsideClickListener) {\r\n this.topbarMenuOutsideClickListener();\r\n this.topbarMenuOutsideClickListener = null;\r\n }\r\n }\r\n\r\n hideMenuProfile() {\r\n this.layoutService.state.menuProfileActive = false;\r\n \r\n if (this.menuProfileOutsideClickListener) {\r\n this.menuProfileOutsideClickListener();\r\n this.menuProfileOutsideClickListener = null;\r\n }\r\n }\r\n\r\n get containerClass() {\r\n let styleClass: {[key: string]: any} = {\r\n 'layout-overlay': this.layoutService.config.menuMode === 'overlay',\r\n 'layout-static': this.layoutService.config.menuMode === 'static',\r\n 'layout-slim': this.layoutService.config.menuMode === 'slim',\r\n 'layout-slim-plus': this.layoutService.config.menuMode === 'slim-plus',\r\n 'layout-horizontal': this.layoutService.config.menuMode === 'horizontal',\r\n 'layout-reveal': this.layoutService.config.menuMode === 'reveal',\r\n 'layout-drawer': this.layoutService.config.menuMode === 'drawer',\r\n 'p-input-filled': this.layoutService.config.inputStyle === 'filled',\r\n 'p-ripple-disabled': !this.layoutService.config.ripple,\r\n 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive && this.layoutService.config.menuMode === 'static',\r\n 'layout-overlay-active': this.layoutService.state.overlayMenuActive,\r\n 'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,\r\n 'layout-topbar-menu-active': this.layoutService.state.topbarMenuActive,\r\n 'layout-menu-profile-active': this.layoutService.state.menuProfileActive,\r\n 'layout-sidebar-active': this.layoutService.state.sidebarActive,\r\n 'layout-sidebar-anchored': this.layoutService.state.anchored\r\n };\r\n\r\n styleClass['layout-topbar-' + this.layoutService.config.topbarTheme] = true;\r\n styleClass['layout-menu-' + this.layoutService.config.menuTheme] = true;\r\n styleClass['layout-menu-profile-' + this.layoutService.config.menuProfilePosition] = true;\r\n return styleClass;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.overlayMenuOpenSubscription) {\r\n this.overlayMenuOpenSubscription.unsubscribe();\r\n }\r\n\r\n if (this.menuOutsideClickListener) {\r\n this.menuOutsideClickListener();\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\r\n <app-topbar *ngIf=\"!autoServicio\"></app-topbar>\r\n <app-rightmenu *ngIf=\"!autoServicio\"></app-rightmenu>\r\n <app-sidebar *ngIf=\"!autoServicio\"></app-sidebar>\r\n\r\n <div class=\"layout-content-wrapper\">\r\n <app-breadcrumb *ngIf=\"!autoServicio\"></app-breadcrumb>\r\n\r\n <div class=\"layout-content\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n\r\n <app-footer *ngIf=\"!autoServicio\"></app-footer>\r\n </div>\r\n <!-- Se esconde el modulo de configuracion -->\r\n <!-- <app-config></app-config> -->\r\n\r\n <div *ngIf=\"layoutService.state.staticMenuMobileActive\" class=\"layout-mask\"></div>\r\n</div>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MenuService } from '../../../core/servicios/menu.service';\r\nimport { UtilsService } from '../../servicios/utils.service';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n imports: [BreadcrumbModule],\r\n standalone: true,\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n})\r\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\r\n subscription: Subscription;\r\n items: MenuItem[];\r\n home: MenuItem;\r\n\r\n constructor(private menuService: MenuService, public utilsService: UtilsService) {}\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.menuService.breadcrumb.subscribe((items) => {\r\n this.items = items;\r\n });\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/admonPortal/inicio' };\r\n } else {\r\n this.home = { icon: 'pi pi-home', routerLink: '/'+ this.utilsService.obtenerBase() + '/inicio' };\r\n }\r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","<div class=\"layout-breadcrumb-container flex justify-content-between align-items-center shadow-1\">\r\n <p-breadcrumb [model]=\"items\" [home]=\"home\" styleClass=\"layout-breadcrumb pl-4 py-2\"></p-breadcrumb>\r\n <div class=\"layout-breadcrumb-buttons flex align-items-center pr-3\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-power-off\" class=\"p-button-rounded p-button-text p-button-plain mr-1\"></button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n \r\n standalone: true,\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n cambiarColor(color){\r\n }\r\n\r\n}\r\n","<div class=\"layout-footer flex align-items-center p-3 shadow-2\">\r\n <img id=\"footer-logo\" [id]=\"'logoImg'\" [src]=\"'assets/images/logo-union-simple.png'\" alt=\"ultima-footer-logo\" />\r\n <img id=\"footer-logo\" [id]=\"'logoName'\" [src]=\" 'assets/images/texto-union-soluciones.png'\" alt=\"ultima-footer-logo\" />\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n icon=\"pi pi-facebook fs-large\"\r\n class=\"p-button-rounded p-button-text p-button-plain ml-auto mr-2\"\r\n ></button>\r\n <button pButton pRipple \r\n type=\"button\" icon=\"pi pi-twitter fs-large\" class=\"p-button-rounded p-button-text p-button-plain mr-2\"></button>\r\n</div>\r\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport { MenuService } from '../../../core/servicios/menu.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n imports: [CommonModule, ScrollPanelModule, PanelMenuModule],\r\n standalone: true,\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n})\r\nexport class MenuComponent implements OnInit, OnDestroy {\r\n subcription: Subscription;\r\n model: MenuItem[] = [];\r\n\r\n @Input()\r\n modulo:string = '';\r\n constructor(private menuService: MenuService) {}\r\n\r\n ngOnInit() {\r\n this.subcription = this.menuService.menu.subscribe((menu) => {\r\n this.model = menu.items;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subcription) {\r\n this.subcription.unsubscribe();\r\n }\r\n }\r\n}\r\n","<div class=\"layout-inline-menu\">\r\n <a class=\"layout-inline-menu-action flex flex-row align-items-center p-4 menu-titulo\">\r\n <span>{{modulo}}\r\n <span pTooltip=\"{{'Tooltip text'}}\" tooltipPosition=\"right\">\r\n <i class=\"pi pi-question-circle\"></i>\r\n </span>\r\n </span>\r\n </a>\r\n</div>\r\n\r\n<p-scrollPanel>\r\n <p-panelMenu [model]=\"model\" [multiple]=\"false\"></p-panelMenu>\r\n</p-scrollPanel>\r\n","import { Injectable } from '@angular/core';\r\nimport { CanLoad, Route, Router, UrlSegment, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { StorageService } from '../storage.service';\r\nimport { UtilsService } from '../utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements CanLoad {\r\n constructor(private authService: AuthService, private utilsService: UtilsService, private route: Router, private toastService: ToastService, private storageService: StorageService) {}\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): any {//Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n if (!this.authService.isTokenValid()) {\r\n this.authService.deleteToken();\r\n this.toastService.showError('Tu sesión no es válida. Primero debes autenticarte con tu usuario y contraseña.', 'Acceso Denegado');\r\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase() +'/login']);\r\n }\r\n let aplicacion = this.authService.getTokenKey('aplicacion');\r\n console.log('aplicacion:'+aplicacion)\r\n if (aplicacion.trim() == '10') {\r\n return true;\r\n }\r\n let tareasss = JSON.parse(this.storageService.getItem('__tareas'));\r\n let ruta = '';\r\n let continuar = true;\r\n segments.forEach(data => {\r\n if (continuar){\r\n if (data.path !== 'US_editar'){\r\n ruta = ruta + '/' + data.path\r\n } else {\r\n continuar = false;\r\n }\r\n }\r\n }) \r\n let respuesta = false;\r\n console.log(ruta)\r\n tareasss.forEach(element => {\r\n if ( element.urlprincipal.replace(/.jsf/, '') === ruta){\r\n respuesta = true;\r\n }\r\n });\r\n \r\n if (!respuesta){\r\n return this.route.createUrlTree(['/'+this.utilsService.obtenerBase()+'/not-found']);\r\n }\r\n return respuesta;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { UtilsService } from '../utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PublicoGuard implements CanActivate {\r\n constructor(private authService: AuthService, private route: Router, private utilsService: UtilsService) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): any{//Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n if (this.authService.isTokenValid()) {\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase()+ '/admonPortal/inicio']);\r\n } else {\r\n return this.route.createUrlTree(['/' + this.utilsService.obtenerBase()+ '/inicio']);\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { catchError, EMPTY, from, Observable, throwError, timeout, TimeoutError } from 'rxjs';\r\nimport { AuthService } from '../auth.service';\r\nimport { StorageService } from '../../servicios/storage.service';\r\nimport { UtilsService } from '../utils.service';\r\nimport { ToastService } from '../toast.service';\r\nimport { ErrorIntecertorService } from '../error-interceptor.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TokenInterceptorService implements HttpInterceptor {\r\n constructor(private router: Router, \r\n private authService: AuthService, \r\n private storage: StorageService, \r\n private errorInterceptor: ErrorIntecertorService,\r\n private storageService: StorageService,\r\n private utilsService: UtilsService) {}\r\n \r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\r\n return from(this.interceptDetalle(request, next)).pipe(\r\n catchError((error: any) => {\r\n if (error instanceof TimeoutError) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\r\n } else if (error instanceof HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred\r\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\r\n } else {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\r\n }\r\n } else {\r\n if (error.status == 0) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\r\n } else {\r\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\r\n }\r\n }\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n async interceptDetalle(request: HttpRequest<any>, next: HttpHandler): Promise<HttpEvent<any>> {\r\n if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {\r\n let token = this.authService.getToken();\r\n if (token){\r\n let fechaActual = new Date();\r\n let fechaExpTokenIni = new Date(this.storage.getDecodedJWT().exp * 1000)\r\n let fechaExpTokenFin = new Date(this.storage.getDecodedJWT().exp * 1000)\r\n fechaExpTokenIni.setMinutes(fechaExpTokenIni.getMinutes() - 10);\r\n if (fechaActual >= fechaExpTokenIni && fechaActual<=fechaExpTokenFin){\r\n var tokenPublico = await this.authService.generarTokenPublico().toPromise()\r\n var tokenRefrescar = await this.authService.refrescarToken({token: token }, (tokenPublico as any)?.token as string).toPromise();\r\n token = (tokenRefrescar as any)?.token as string;\r\n this.authService.deleteToken()\r\n this.storage.setItem('token', token);\r\n }\r\n }\r\n }\r\n return await this.setearTokenRequest(request, next).toPromise();\r\n } \r\n\r\n setearTokenRequest(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\r\n var basePortal: string = this.utilsService.obtenerBase();\r\n let token = this.authService.getToken();\r\n if (request.url.includes('/requieretoken') && !request.url.includes('/portalPublico')) {\r\n request = request.clone({\r\n headers: request.headers.set('Authorization', `Bearer ${token}`),\r\n });\r\n }\r\n\r\n request = request.clone({\r\n headers: request.headers.set('Base', basePortal),\r\n });\r\n\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n if (error.status === 401) {\r\n this.authService.deleteToken();\r\n this.storageService.removeItem('roles')\r\n this.storageService.removeItem('autenticacionUsuarioDTO')\r\n this.storageService.removeItem('rol_seleccionado')\r\n this.storageService.removeItem('token')\r\n this.storageService.removeItem('__tareas')\r\n this.storageService.removeItem('modulos')\r\n this.storageService.removeItem('moduloSeleccionado')\r\n if (this.authService.getTokenKey('aplicacion') == '10') {\r\n var idDBSeguridad;\r\n var idSitio;\r\n for (const match of this.urlNavegador.matchAll(/(?<inicio>.*)\\/(?<seguridad>.*)\\/(?<sitio>.*)\\/(?<pagina>.*)/g)) {\r\n idDBSeguridad = match.groups?.['seguridad'];\r\n idSitio = match.groups?.['sitio'];\r\n }\r\n const dataToken = this.obtenerTokenSyncrono(request.url);\r\n const sessionSitio = this.portaltraerSitioSincrono(request.url, idDBSeguridad, idSitio, dataToken.token);\r\n const urlLocal2 = `${idDBSeguridad}/${sessionSitio.codigo}/${sessionSitio.codigoPaginaInicio}`;\r\n this.navegar(urlLocal2);\r\n } else {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/login');\r\n }\r\n return EMPTY;\r\n }\r\n if (error instanceof TimeoutError) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\r\n } else if (error instanceof HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred\r\n if (error.error.message.includes('ERR_CONNECTION_REFUSED')) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'El servicio no está disponible. Por favor, inténtelo más tarde.'}).toString());\r\n } else {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\r\n }\r\n } else {\r\n if (error.status == 0) {\r\n this.errorInterceptor.showError(JSON.stringify({tipo: 'ERR', traza: '.', mensaje: 'Se produjo un error de red. Por favor, inténtelo más tarde.'}).toString());\r\n } else {\r\n console.error(`Error HTTP: ${error.status} - ${error.message}`);\r\n }\r\n }\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n portaltraerSitioSincrono(url: string, idDBSeguridad: any, idSitio: any, token: string): any {\r\n const xhr = new XMLHttpRequest();\r\n let result;\r\n\r\n xhr.open('POST', url+'/portal/traerSitio', false); \r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.setRequestHeader('Authorization', `Bearer ${token}`);\r\n xhr.setRequestHeader('Base', this.utilsService.obtenerBase());\r\n xhr.onreadystatechange = () => { \r\n result = JSON.parse(xhr.responseText);\r\n result.status = xhr.status;\r\n };\r\n xhr.send(`{\"conexion\": \"${idDBSeguridad}\", \"sitio\": \"${idSitio}\", \"url\": \"${window.parent.location.origin}\"}`);\r\n\r\n return result;\r\n }\r\n\r\n obtenerTokenSyncrono(url): any {\r\n const xhr = new XMLHttpRequest();\r\n let result;\r\n\r\n xhr.open('GET', url+'/authentication/generarTokenPublico', false); \r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.setRequestHeader('Base', this.utilsService.obtenerBase());\r\n xhr.onreadystatechange = () => {\r\n // if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {\r\n // result = JSON.parse(xhr.responseText);\r\n // }\r\n result = JSON.parse(xhr.responseText);\r\n result.status = xhr.status;\r\n };\r\n xhr.send();\r\n\r\n return result;\r\n }\r\n\r\n private navegar(url: any) {\r\n window.location.href = window.location.origin + '/' + url;\r\n }\r\n\r\n get urlNavegador(): string {\r\n const urlPathname = window.location.pathname;\r\n return urlPathname;\r\n }\r\n\r\n}\r\n","export class ColorUtil {\r\n /**\r\n * Define las variables CSS del tema y las agrega al documento.\r\n * Se definene 9 colores alternativos más el color principal.\r\n * Adicional se agregan las componentes HSL del color para hacer\r\n * variaciones personalizadas y ajustar la opacidad.\r\n * @param color Color principal del tema\r\n */\r\n static addPalleteToRoot(color: string): void {\r\n const head = (document.head || document.getElementsByTagName('head')[0]) as HTMLHeadElement;\r\n const style = document.createElement('style') as HTMLStyleElement;\r\n const { hue, saturation, lightness } = this.RGB2HSL(color);\r\n const contrast = this.contrastColor(color) === 1 ? '--color-50' : '--color-900';\r\n\r\n const intermediateColors = [50, 75, 85]\r\n let index = 0;\r\n const css =\r\n ':root { ' +\r\n this._generatePalette(color)\r\n .map((color, position) => {\r\n if(index < 100){\r\n index = intermediateColors[position] ? intermediateColors[position] : 100;\r\n } else {\r\n index += 100;\r\n }\r\n return `--color-${index}: ${color};`;\r\n })\r\n .join('') +\r\n `--color-h: ${hue};` +\r\n `--color-s: ${saturation}%;` +\r\n `--color-l: ${lightness}%;` +\r\n `--color-contrast: var(${contrast});` +\r\n '}';\r\n style.type = 'text/css';\r\n style.appendChild(document.createTextNode(css));\r\n head.appendChild(style);\r\n }\r\n\r\n /**\r\n * Mezcla dos colores en proporción a un porcentaje para obtener un\r\n * nuevo color.\r\n * @param baseColor Color base para mezclar\r\n * @param color Color que se quiere mezclar\r\n * @param weight Porcentaje que se quiere mezclar. Entre 0 y 1\r\n * @returns Color resultante en formato RGB (#AABBCC)\r\n */\r\n static mix(baseColor: string, color: string, weight: number): string {\r\n const newColor = [];\r\n baseColor = this._normalizeColor(baseColor);\r\n color = this._normalizeColor(color);\r\n\r\n const rgbColorBase = this._getRGBValues(baseColor);\r\n const rgbColorAdjust = this._getRGBValues(color);\r\n\r\n ['red', 'green', 'blue'].forEach((part) => {\r\n newColor.push(\r\n Math.round(rgbColorAdjust[part] + (rgbColorBase[part] - rgbColorAdjust[part]) * weight)\r\n .toString(16)\r\n .padStart(2, '0')\r\n );\r\n });\r\n\r\n return '#' + newColor.join('');\r\n }\r\n\r\n /**\r\n * Aclara un color proporcionalmente.\r\n * @param color Color base para modificar\r\n * @param percent Porcentaje de blanco que se agrega\r\n * @returns Nuevo color más claro\r\n */\r\n static tint(color: string, percent: number): string {\r\n return this.mix('#fff', color, percent);\r\n }\r\n\r\n /**\r\n * Oscurece un color proporcionalmente.\r\n * @param color Color base para modificar\r\n * @param percent Porcentaje de negro que se agrega\r\n * @returns Nuevo color más oscuro\r\n */\r\n static shade(color: string, percent: number): string {\r\n return this.mix('#000', color, percent);\r\n }\r\n\r\n /**\r\n * Transforma un color en RGB a su equivalente en formato HSL\r\n * @param color Color en formato RGB\r\n * @returns Arreglo de componentes HSL\r\n */\r\n static RGB2HSL(color: string): { hue: number; saturation: number; lightness: number } {\r\n color = this._normalizeColor(color);\r\n\r\n let { red, green, blue } = this._getRGBValues(color);\r\n red /= 255;\r\n green /= 255;\r\n blue /= 255;\r\n\r\n const max = Math.max(red, green, blue);\r\n const min = Math.min(red, green, blue);\r\n\r\n let hue = 0;\r\n let saturation = 0;\r\n let lightness = (max + min) / 2;\r\n\r\n if (max != min) {\r\n const delta = max - min;\r\n saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\r\n switch (max) {\r\n case red:\r\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\r\n break;\r\n case green:\r\n hue = (blue - red) / delta + 2;\r\n break;\r\n case blue:\r\n hue = (red - green) / delta + 4;\r\n break;\r\n }\r\n hue /= 6;\r\n }\r\n\r\n hue = Math.round(hue * 360);\r\n saturation = Math.round(saturation * 100);\r\n lightness = Math.round(lightness * 100);\r\n\r\n return { hue, saturation, lightness };\r\n }\r\n\r\n /**\r\n * Retorna 1 (blanco) o 0 (negro) para contrastar el color enviado.\r\n * @param color Color del cual se quiere buscar el contraste\r\n * @returns Blanco o Negro en RGB\r\n */\r\n static contrastColor(color: string): number {\r\n color = this._normalizeColor(color);\r\n const { red, green, blue } = this._getRGBValues(color);\r\n return red * 0.299 + green * 0.587 + blue * 0.114 > 186 ? 0 : 1;\r\n }\r\n\r\n /**\r\n * Valida que la cadena de texto represente un color RGB válido y\r\n * retorna las componentes del color en formato de seis caracteres.\r\n * @param color Color en formato RGB. Ejemplo: (#000)\r\n * @returns String del color sin el simbolo #\r\n */\r\n private static _normalizeColor(color: string): string {\r\n const rgbColor = color.match(/^#([0-9A-F]{3}|[0-9A-F]{6})$/i);\r\n if (!rgbColor) {\r\n throw new Error(`${color} is not a RGB color.`);\r\n }\r\n\r\n const colorParts = rgbColor[1].toLowerCase();\r\n if (colorParts.length === 3) {\r\n return colorParts.replace(/(.)/g, '$1$1');\r\n }\r\n\r\n return colorParts;\r\n }\r\n\r\n /**\r\n * Transforma un color Hexadecimal a Decimal en sus respectivas\r\n * comopnenetes.\r\n * @param color Color en Hecadecimal para descomponer\r\n * @returns Un objeto {red, green, blue} en decimal\r\n */\r\n private static _getRGBValues(color: string): { red: number; green: number; blue: number } {\r\n const red = parseInt(color.slice(0, 2), 16);\r\n const green = parseInt(color.slice(2, 4), 16);\r\n const blue = parseInt(color.slice(4, 6), 16);\r\n return { red, green, blue };\r\n }\r\n\r\n /**\r\n * Define una paleta de 10 colores, 5 más claros y 4 más oscuros basados\r\n * en el color principal. El color principal será el color medio de la paleta\r\n * @param color Color base para definir los demás colores\r\n * @returns Arreglo de todos los colores de la paleta\r\n */\r\n private static _generatePalette(color: string): string[] {\r\n const palette = [];\r\n for (let i = 0; i < 5; i++) {\r\n if(i === 0) {\r\n palette.push(this.tint(color, (5 - i) * 0.19));\r\n palette.push(this.tint(color, (4.8 - i) * 0.19));\r\n palette.push(this.tint(color, (4.55 - i) * 0.19));\r\n } else {\r\n palette.push(this.tint(color, (5 - i) * 0.19));\r\n }\r\n }\r\n palette.push(color);\r\n for (let i = 1; i < 5; i++) {\r\n palette.push(this.shade(color, i * 0.15));\r\n }\r\n return palette;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ModulosModel } from '../../../seguridad/modelos/ModulosModel';\r\nimport { ToastService } from '../../servicios/toast.service';\r\nimport { UtilsService } from '../../servicios/utils.service';\r\nimport { StorageService } from '../../servicios/storage.service';\r\nimport { AuthService } from '../../servicios/auth.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ButtonModule } from 'primeng/button';\r\n@Component({\r\n imports: [CommonModule, ButtonModule],\r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './inicio-component.component.html',\r\n styleUrls: ['./inicio-component.component.scss'],\r\n})\r\nexport class InicioComponentComponent implements OnInit {\r\n public modulo?: ModulosModel = new ModulosModel(null, null);\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private activatedRoute: ActivatedRoute,\r\n private toast: ToastService,\r\n private authService: AuthService,\r\n private utilsService: UtilsService,\r\n private storageService: StorageService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.consultarModulo();\r\n }\r\n\r\n consultarModulo() {\r\n let objeto = {\r\n nombreDTO: 'ModuloDTO',\r\n nombreConsulta: null,\r\n seguridad: true,\r\n objeto: {\r\n llave: this.utilsService.rightpad(this.storageService.getItem('moduloSeleccionado'), 3, ' '),\r\n aplicacion: this.utilsService.rightpad(this.authService.getTokenKey('codigoAplicacion'), 10, ' ')\r\n },\r\n }\r\n console.log(objeto)\r\n this.activatedRoute.data.subscribe((v) => {\r\n this.httpClient\r\n .post<any>(\r\n `${this.utilsService.obtenerUrlApi()}/requieretoken/general/queryForObject`,\r\n objeto\r\n )\r\n .subscribe((data) => {\r\n this.modulo = data;\r\n console.log(this.modulo);\r\n });\r\n });\r\n }\r\n\r\n marcarModuloFavorito(){\r\n if (this.modulo && this.modulo?.descripcion) {\r\n this.storageService.setItem('moduloFavorito',this.modulo?.descripcion);\r\n this.toast.showSuccess('Se agrego '+this.modulo?.descripcion+' como favorito');\r\n }\r\n }\r\n}\r\n","<div>\r\n <div class=\"Inputgroup p-4 mt-0 \">\r\n <div class=\"p-fluid p-formgrid grid align-items-center favorito\">\r\n <div class=\"Icono\">\r\n <button pButton pRipple type=\"button\" icon=\"glyphicons glyphicons-heart\" class=\"p-button-rounded p-button-help p-button-text mr-2 mb-2\"\r\n style=\"float: right;\" (click)=\"marcarModuloFavorito()\"></button>\r\n </div>\r\n <div class=\"field col-12 md:col-3 animacion\">\r\n <img class=\"FormaImagen\"\r\n [src]=\"'assets/modulos/' + (modulo.icono.replace('.png', '.webp'))\"\r\n alt=\"\" srcset=\"\">\r\n </div>\r\n <div class=\"field col-12 md:col-9\" >\r\n <div class=\"pl-3 animacion\" *ngIf=\"modulo\">\r\n\r\n <h2 >\r\n <span >{{'Bienvenido'}} a</span><br>\r\n {{modulo.descripcion}}\r\n </h2>\r\n <div class=\"col-12 md:col-9 separador\"></div>\r\n <div>\r\n <p>{{modulo.descripcionLarga}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"Inputgroup-borde pt-2\"></div> -->\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { RolModel } from '../../../seguridad/modelos/RolModel';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { StorageService } from '../../../core/servicios/storage.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CargarControlFuncionalidadService } from '../../../core/servicios/cargar-control-funcionalidad.service';\r\nimport { ModulosModel } from '../../../seguridad/modelos/ModulosModel';\r\nimport { TareasModel } from '../../../seguridad/modelos/TareasModel';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TableModule } from 'primeng/table';\r\n\r\n@Component({\r\n selector: 'app-seleccion-rol',\r\n imports: [DialogModule, FormsModule, CommonModule, TableModule,],\r\n standalone: true,\r\n templateUrl: './seleccion-rol.component.html',\r\n styleUrls: ['./seleccion-rol.component.scss'],\r\n})\r\nexport class SeleccionRolComponent implements OnInit {\r\n @Input() mostrar: boolean;\r\n @Input() codigoAplicacion: string;\r\n @Output() regresar = new EventEmitter();\r\n\r\n listRoles: RolModel[];\r\n rolSeleccionado: RolModel;\r\n rowGroupMetadata: any;\r\n rolesConexionEmpresa: RolModel[];\r\n filtrolRolesConexionEmpresa: RolModel[];\r\n listaEmpresa = new Map();\r\n listaPerfiles = new Map();\r\n listaConexiones = new Map();\r\n parametroBusqueda: string = null;\r\n admonPortal: boolean = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private storageService: StorageService,\r\n private cookieService: CookieService,\r\n private authService: AuthService,\r\n private utilsService: UtilsService,\r\n private controlFuncionalidad: CargarControlFuncionalidadService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.parametroBusqueda = '';\r\n this.rolesConexionEmpresa = [];\r\n this.listRoles = [];\r\n }\r\n\r\n public cargar(listaRoles, admonPortal) {\r\n\r\n this.rolSeleccionado = null;\r\n this.admonPortal = admonPortal;\r\n\r\n this.listRoles = listaRoles;\r\n\r\n this.rolesConexionEmpresa = [];\r\n\r\n for (let rol of this.listRoles) {\r\n\r\n if (!this.rolesConexionEmpresa.some(r =>\r\n r.codigoConexion === rol.codigoConexion &&\r\n r.nombreConexion === rol.nombreConexion &&\r\n r.codigoEmpresa === rol.codigoEmpresa &&\r\n r.nombreEmpresa === rol.nombreEmpresa &&\r\n r.numeroEmpresa === rol.numeroEmpresa &&\r\n r.llaveRol === rol.llaveRol &&\r\n r.nombreRol === rol.nombreRol)) {\r\n this.rolesConexionEmpresa.push(rol);\r\n this.listaEmpresa.set(rol.codigoEmpresa, rol.nombreEmpresa);\r\n this.listaPerfiles.set(rol.llaveRol, rol.nombreRol);\r\n this.listaConexiones.set(rol.codigoConexion, rol.nombreConexion);\r\n }\r\n }\r\n\r\n this.filtrolRolesConexionEmpresa = [...this.rolesConexionEmpresa];\r\n }\r\n\r\n public getNombreRol(): string | null {\r\n if (this.listaPerfiles.size > 1 || this.rolesConexionEmpresa.length === 0) {\r\n return null;\r\n }\r\n return this.rolesConexionEmpresa[0].nombreRol;\r\n }\r\n\r\n public getNombreEmpresa(): string | null {\r\n if (this.listaEmpresa.size > 1 || this.rolesConexionEmpresa.length === 0) {\r\n return null;\r\n }\r\n return this.rolesConexionEmpresa[0].nombreEmpresa;\r\n }\r\n\r\n public getNombreConexion(): string | null {\r\n if (this.listaConexiones.size > 1 || this.rolesConexionEmpresa.length === 0) {\r\n return null;\r\n }\r\n return this.rolesConexionEmpresa[0].nombreConexion;\r\n }\r\n\r\n cargarListadoFiltro() {\r\n\r\n if (this.parametroBusqueda.trim() === '') {\r\n this.filtrolRolesConexionEmpresa = [...this.rolesConexionEmpresa];\r\n } else {\r\n this.filtrolRolesConexionEmpresa = this.rolesConexionEmpresa.filter(rol =>\r\n rol.nombreEmpresa.toLowerCase().includes(this.parametroBusqueda.toLowerCase()) ||\r\n rol.nombreConexion.toLowerCase().includes(this.parametroBusqueda.toLowerCase()) ||\r\n rol.nombreRol.toLowerCase().includes(this.parametroBusqueda.toLowerCase())\r\n );\r\n }\r\n\r\n }\r\n\r\n verAction() {\r\n var urlapinucleo = this.cookieService.get('urlnucleo')\r\n this.rolSeleccionado.admonPortal = this.admonPortal\r\n this.storageService.setItem(\r\n 'rol_seleccionado',\r\n JSON.stringify(this.rolSeleccionado)\r\n );\r\n this.rolSeleccionado.aplicacion = this.codigoAplicacion;\r\n this.storageService.setRolSeleccionado(this.rolSeleccionado);\r\n this.authService.seleccionRol(this.rolSeleccionado).subscribe((data) => {\r\n /*let rol: any = {}\r\n rol.codigoRol = this.authService.getTokenKey('llaveRol');\r\n this.authService.generarTokenPublico().subscribe(data2 => {\r\n this.controlFuncionalidad.cargarFuncionalidad(rol, `${urlapinucleo}/authentication/funcionalidades`, data2.token).subscribe({});*/\r\n const token = (data as any)?.token as string;\r\n this.storageService.setItem('token', token);\r\n this.storageService.setItem('controlFuncionalidades', (data as any).controlesfuncionalidades);\r\n /********************************************************************************************/\r\n /* Codigo temporal para mantener las tareas, pero estas deben ser obtenidas por un servicio */\r\n var tareas: TareasModel[] = (data as any).tareasmodulo;\r\n this.storageService.setItem('__tareas', JSON.stringify(tareas));\r\n var modulosDeTareas = tareas.filter((obj, index, self) => {\r\n return index === self.findIndex((o) => o.modulo === obj.modulo);\r\n });\r\n var modulos: ModulosModel[] = [];\r\n modulosDeTareas.forEach(data => {\r\n let modulo: ModulosModel = {\r\n llave: data.modulo,\r\n descripcion: data.nombreModulo,\r\n icono: data.iconoModulo\r\n }\r\n modulos.push(modulo)\r\n })\r\n this.storageService.setItem('modulos', JSON.stringify(modulos));\r\n if (this.storageService.getItem('moduloFavorito') !== undefined && this.storageService.getItem('moduloFavorito')) {\r\n this.storageService.setItem('moduloSeleccionado', this.storageService.getItem('moduloFavorito'));\r\n } else {\r\n let modulodefecto = (data as any)?.modulodefecto;\r\n if (!modulodefecto) {\r\n modulodefecto = modulos[0].llave;\r\n }\r\n this.storageService.setItem('moduloSeleccionado', modulodefecto);\r\n }\r\n this.regresarRegistro()\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\r\n } else {\r\n this.router.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\r\n }\r\n });\r\n }\r\n\r\n\r\n regresarRegistro() {\r\n this.mostrar = false;\r\n this.regresar.emit();\r\n }\r\n\r\n}","<p-dialog id='popupSeleccionPlantilla' header=\"Perfil\" [(visible)]=\"mostrar\" appendTo=\"body\"\r\n (onHide)=\"regresarRegistro()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{'min-width':'20vw'}\"\r\n [modal]=\"true\" [draggable]=\"false\">\r\n\r\n <span class=\"p-input-icon-left mb-3 w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <input class=\" w-full p-inputtext\" type=\"text\" pInputText [(ngModel)]=\"parametroBusqueda\" (keyup.enter)=\"cargarListadoFiltro()\" />\r\n </span>\r\n\r\n <!-- Contenido -->\r\n <div class=\"flex mb-3\">\r\n <!--Empresa -->\r\n <div class=\"flex align-items-center mr-4\" pTooltip=\"Empresa\" tooltipPosition=\"top\"\r\n *ngIf=\"getNombreEmpresa() != null\">\r\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-building color-400\"></i>\r\n <label class=\"font-semibold\" htmlFor=\"id_empresa\"> {{getNombreEmpresa() | uppercase}}</label>\r\n <!-- <label htmlFor=\"empresa\">{{'empresa' | translate}}</label> -->\r\n </div>\r\n <!--Conexion -->\r\n <div class=\"flex align-items-center mr-4\" pTooltip=\"Conexión\" tooltipPosition=\"top\"\r\n *ngIf=\"getNombreConexion() != null\">\r\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-book color-400 font-semibold\"></i>\r\n <label class=\"font-semibold\" htmlFor=\"id_rol\"> {{getNombreConexion() | uppercase}}</label>\r\n\r\n </div>\r\n <!--Rol -->\r\n <div class=\"flex align-items-center\" pTooltip=\"Rol\" tooltipPosition=\"top\" *ngIf=\"getNombreRol() != null\">\r\n <i style=\"font-size: 1.2rem !important\" class=\"glyphicons glyphicons-user color-400\"></i>\r\n <label class=\"font-semibold\" htmlFor=\"id_rol\"> {{getNombreRol()}}</label>\r\n </div>\r\n </div>\r\n\r\n <p-table [value]=\"filtrolRolesConexionEmpresa\" responsiveLayout=\"scroll\" [paginator]=\"listRoles.length > 10\" [rows]=\"10\"\r\n [(selection)]=\"rolSeleccionado\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction()\" selectionMode=\"single\">\r\n <!-- header de la tabla de seleccion rol -->\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th *ngIf=\"getNombreEmpresa() == null\">Nombre Empresa</th>\r\n <th *ngIf=\"getNombreConexion() == null\">Conexión</th>\r\n <th *ngIf=\"getNombreRol() == null\">Rol</th>\r\n </tr>\r\n </ng-template>\r\n <!-- cuerpo de la tabla -->\r\n <ng-template pTemplate=\"body\" let-rol let-rowIndex=\"rowIndex\">\r\n <tr [pSelectableRow]=\"rol\">\r\n <td *ngIf=\"getNombreEmpresa() == null\" style=\"min-width: 200px\">\r\n {{rol.nombreEmpresa}}\r\n </td>\r\n <td *ngIf=\"getNombreConexion() == null\" style=\"min-width: 200px\">\r\n {{ rol.nombreConexion}}\r\n </td>\r\n <td *ngIf=\"getNombreRol() == null\" style=\"min-width: 200px\">\r\n {{ rol.nombreRol }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</p-dialog>","import { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { LoadingService } from '../../servicios/loading.service';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-carga-pantalla-completa',\r\n imports: [CommonModule],\r\n standalone: true,\r\n templateUrl: './carga-pantalla-completa.component.html',\r\n styleUrls: ['./carga-pantalla-completa.component.scss']\r\n})\r\nexport class CargaPantallaCompletaComponent implements OnInit {\r\n\r\n public isLoading: boolean;\r\n loadingSubscription: Subscription;\r\n\r\n constructor(private loadingService: LoadingService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadingSubscription = this.loadingService.loadingFullScreen.subscribe(\r\n state => this.isLoading = state\r\n )\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this.loadingSubscription){\r\n this.loadingSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","<div *ngIf=\"isLoading\" class=\"progress-spinner\">\r\n <div class=\"splash-screen\">\r\n <div class=\"splash-loader-container\">\r\n <svg class=\"splash-loader\" width=\"65px\" height=\"65px\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"splash-path\" fill=\"none\" stroke-width=\"6\" stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n ReactiveFormsModule,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { AuthenticationError } from '../../../core/errores/authentication.error';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { LoadingService } from '../../../core/servicios/loading.service';\r\nimport { RolModel } from '../../../seguridad/modelos/RolModel';\r\nimport { SeleccionRolComponent } from '../seleccion-rol/seleccion-rol.component';\r\nimport { StorageService } from '../../../core/servicios/storage.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { GeneralPipe } from '../../../webcommon/pipes/general.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { CargaPantallaCompletaComponent } from '../../../core/componentes/carga-pantalla-completa/carga-pantalla-completa.component';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n imports: [ReactiveFormsModule, CommonModule, TranslateModule, PasswordModule, CargaPantallaCompletaComponent, SeleccionRolComponent, ButtonModule,],\r\n standalone: true,\r\n providers: [MessageService,],\r\n templateUrl: './login.page.html',\r\n styleUrls: ['./login.page.scss'],\r\n})\r\nexport class LoginPage implements OnInit {\r\n loginForm: FormGroup;\r\n urlapinucleo: string;\r\n codigoAplicacion: string;\r\n nombreAplicacion: string;\r\n admonPortal: boolean = false;\r\n estilo:string;\r\n icono:string;\r\n\r\n public mostrarRoles: boolean = false;\r\n public listRoles: RolModel [] = [];\r\n private _rolSeleccionado: RolModel;\r\n\r\n @ViewChild(SeleccionRolComponent) componenteSeleccionRol:SeleccionRolComponent;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private toastService: ToastService,\r\n private authService: AuthService,\r\n private route: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private loadingService: LoadingService,\r\n private storageService: StorageService,\r\n private generalPipe: GeneralPipe,\r\n private utilsService: UtilsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.data.subscribe((v) =>{\r\n this.codigoAplicacion = v['codigoAplicacion']\r\n this.nombreAplicacion = v['nombreAplicacion']\r\n this.urlapinucleo = v['urlapinucleo']\r\n this.admonPortal = v['admonPortal']\r\n this.icono = this.generalPipe.MAPALOGOSICONOS.filter(item => item.codigo == v['codigoAplicacion'])[0].nombre;\r\n if(v['codigoAplicacion'] == '1'){\r\n this.estilo = 'left-side-sara col-12 md:col-6 xl:col-6'\r\n\r\n }else if(v['codigoAplicacion'] == '13' || v['codigoAplicacion'] == '77' || v['codigoAplicacion'] == '4'){\r\n this.estilo = 'left-side-sam col-12 md:col-6 xl:col-6'\r\n }else if(v['codigoAplicacion'] == '5'){\r\n this.estilo = 'left-side-seguridad col-12 md:col-6 xl:col-6'\r\n }else{\r\n this.estilo = 'left-side-sara col-12 md:col-6 xl:col-6'\r\n }\r\n this.loginForm = this.formBuilder.group({\r\n login: new FormControl( v['codigoAplicacion'] == '1' ? 'saraadmin' : 'manaadmin', [Validators.required]),\r\n clave: new FormControl('manaadmin', [Validators.required]),\r\n aplicacion: v['codigoAplicacion'],\r\n admonPortal: this.admonPortal\r\n });\r\n });\r\n\r\n }\r\n\r\n async login() {\r\n this.loadingService.startFullScreenLoading();\r\n try {\r\n this.storageService.setItem('roles', '');\r\n let data = await this.authService.generarTokenPublico().toPromise();\r\n let token = await lastValueFrom(\r\n this.authService.login(this.loginForm.value, this.urlapinucleo, data.token)\r\n );\r\n var roles = this.storageService.getItem('roles')\r\n if (roles) {\r\n this.mostrarRoles = true;\r\n this.listRoles = JSON.parse(roles);\r\n this.componenteSeleccionRol.cargar(this.listRoles, this.admonPortal );\r\n } else {\r\n if (window.location.href.toString().includes('admonPortal')) {\r\n this.route.navigateByUrl(this.utilsService.obtenerBase() + '/admonPortal/inicio');\r\n } else {\r\n this.route.navigateByUrl(this.utilsService.obtenerBase() + '/inicio');\r\n }\r\n }\r\n\r\n } catch (error) {\r\n if (error instanceof AuthenticationError) {\r\n this.toastService.showError(\r\n 'Por favor verifica los datos de acceso. Si el error persiste contacta al administrador.',\r\n 'Datos Inválidos'\r\n );\r\n } else {\r\n throw error;\r\n }\r\n } finally {\r\n this.loadingService.endFullScreenLoading();\r\n }\r\n }\r\n\r\n regresarSeleccionRol(){\r\n //this.storage.setEtiquetasYColores();\r\n this.mostrarRoles = false;\r\n }\r\n\r\n}\r\n","<div id=\"login\" class=\"grid p-input-filled\">\r\n <div [class]=\"estilo\">\r\n <div>\r\n <img class=\"logo\" src=\"assets/images/logous-blanco.png\" />\r\n <!-- <h1>{{codigoAplicacion}}</h1> -->\r\n <h1><img [src]=\"icono\" /> </h1>\r\n <div class=\"flex navegadores text-center\">\r\n <div>\r\n <img src=\"assets/images/navegador-chrome.png\" />\r\n <span class=\"font-bold text-sm\">20+</span>\r\n </div>\r\n <div>\r\n <img src=\"assets/images/navegador-explorer.png\" />\r\n <span class=\"font-bold text-sm\">10+</span>\r\n </div>\r\n <div>\r\n <img src=\"assets/images/navegador-firefox.png\" />\r\n <span class=\"font-bold text-sm\">20+</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"right-side col-12 md:col-6 xl:col-6\">\r\n <div class=\"p-5\">\r\n <h3 class=\"font-semibold text-3xl\">¡Bienvenido!</h3>\r\n <p class=\"mb-5\">Inicia sesión para controlar y planificar los recursos de tu organización de manera eficiente y segura.</p>\r\n <form [formGroup]=\"loginForm\" class=\"p-fluid\">\r\n <div class=\"p-inputgroup mb-4\">\r\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-user\"></i></span>\r\n <input class=\"p-inputtext p-component p-element ng-tns-c71-8 p-filled\" type=\"text\" pInputText placeholder=\"Usuario\" formControlName=\"login\" />\r\n </div>\r\n <div class=\"p-inputgroup mb-4\">\r\n <span class=\"p-inputgroup-addon\"><i class=\"pi pi-lock\"></i></span>\r\n <p-password\r\n [toggleMask]=\"true\"\r\n [feedback]=\"false\"\r\n placeholder=\"Clave\"\r\n formControlName=\"clave\"\r\n ></p-password>\r\n </div>\r\n <div class=\"text-right mt-7 mb-3 font-semibold text-base\">\r\n <a href=\"#\">Olvide mi clave</a>\r\n </div>\r\n <button pButton pRipple type=\"button\" label=\"Ingresar\" (click)=\"login()\" class=\"font-semibold text-lg\"></button>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n<app-carga-pantalla-completa></app-carga-pantalla-completa>\r\n\r\n<app-seleccion-rol [mostrar]=\"mostrarRoles\" (regresar)=\"regresarSeleccionRol()\"></app-seleccion-rol>\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { RouterModule } from '@angular/router';\r\nimport { StorageService } from '../../../core/servicios/storage.service';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { RippleModule } from 'primeng/ripple';\r\n\r\n@Component({\r\n imports: [RouterModule, ButtonModule, RippleModule],\r\n standalone: true,\r\n templateUrl: './not-found.page.html',\r\n styleUrls: ['./not-found.page.scss'],\r\n})\r\nexport class NotFoundPage implements OnInit {\r\n\r\n public mensaje: string;\r\n public urlRegresar: string;\r\n public labelMensaje: string;\r\n public mostrarBoton: boolean = true;\r\n\r\n constructor(public utilsService: UtilsService, private storageService: StorageService) {}\r\n\r\n ngOnInit(): void {\r\n this.mostrarBoton = true;\r\n this.mensaje = this.storageService.getItem('mensaje_notfound');\r\n this.urlRegresar = this.storageService.getItem('url_regresar');\r\n this.mostrarBoton = (this.storageService.getItem('mostrarboton_notfound') != null || this.storageService.getItem('mostrarboton_notfound') != undefined ? this.storageService.getItem('mostrarboton_notfound') =='true' : true);\r\n\r\n if (this.urlRegresar) {\r\n this.labelMensaje = 'Regresar a la página anterior';\r\n } else {\r\n this.labelMensaje = 'Ir a la página de Inicio';\r\n }\r\n this.storageService.removeItem('mensaje_notfound');\r\n this.storageService.removeItem('url_regresar');\r\n this.storageService.removeItem('mostrarboton_notfound');\r\n }\r\n\r\n accion() {\r\n if (this.urlRegresar) {\r\n window.location.href = this.urlRegresar;\r\n } else {\r\n window.location.href = window.location.origin + '/' + this.utilsService.obtenerBase() + '/inicio';\r\n }\r\n }\r\n}\r\n","<div id=\"not-found\"\r\nclass=\"flex flex-column flex-wrap justify-content-start align-content-center align-items-center\">\r\n <div class=\"flex flex-column card-container\">\r\n \r\n <div class=\"flex align-items-center justify-content-center\">\r\n <div>\r\n <img class=\"align-items-center justify-content-center\" src=\"assets/images/not-found.png\" />\r\n </div>\r\n <div>\r\n\r\n <div class=\"p-inputgroup mb-4 w-16rem\">\r\n <span class=\"p-inputgroup-search\"><i class=\"pi pi-search color-700\"></i></span>\r\n <input class=\"p-inputtext p-component p-element ng-tns-c71-8 p-filled\" type=\"text\" pInputText placeholder=\"Buscar\" formControlName=\"login\" />\r\n </div>\r\n\r\n <h4>404</h4>\r\n <h5>Página no encontrada</h5>\r\n <p>Lo sentimos la página que buscas no existe</p>\r\n @if (mensaje) {\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <h6>{{mensaje}}</h6>\r\n </div>\r\n }\r\n @if (mostrarBoton) {\r\n <div>\r\n <button (click)=\"accion()\" pButton pRipple class=\"justify-content-start align-content-center align-items-center\"> {{labelMensaje}}</button>\r\n \r\n </div>\r\n }\r\n </div>\r\n </div>\r\n \r\n\r\n</div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@Component({\r\n imports: [RouterModule],\r\n standalone: true,\r\n templateUrl: './timeout.page.html',\r\n styleUrls: ['./timeout.page.scss']\r\n})\r\nexport class TimeoutPage implements OnInit {\r\n\r\n constructor(public utilsService: UtilsService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div id=\"timeout\"\r\nclass=\"flex flex-column flex-wrap justify-content-start align-content-center align-items-center\">\r\n <div class=\"aling-items-center justify-content-center flex flex-column card-container\">\r\n \r\n <div class=\"flex align-items-center justify-content-center\">\r\n <div>\r\n <img class=\"align-items-center justify-content-center\" src=\"assets/images/timeout.png\" />\r\n </div>\r\n <div>\r\n\r\n\r\n \r\n <div>\r\n <h4>Tu sesión ha finalizado</h4>\r\n <button routerLink=\"/{{utilsService.obtenerBase()}}/login\" pButton pRipple class=\"text-xl\">Iniciar sesión</button>\r\n \r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n\r\n</div>\r\n</div>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SkipSelf,\r\n TemplateRef,\r\n ViewChild,\r\n inject,\r\n Renderer2,\r\n ElementRef} from '@angular/core';\r\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { Dialog } from 'primeng/dialog';\r\nimport { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';\r\n\r\n@Component({\r\n selector: 'app-filtro-general',\r\n imports: [ChipModule, OverlayPanelModule, ReactiveFormsModule, TranslateModule, ButtonModule, FormsModule, CommonModule],\r\n standalone: true,\r\n templateUrl: './filtro-general.component.html',\r\n styleUrls: ['./filtro-general.component.scss'],\r\n})\r\nexport class FiltroGeneralComponent implements OnInit {\r\n @ViewChild('op') overlayPanel: any;\r\n\r\n @Input() filtros: any[];\r\n\r\n @Input() datatable;\r\n\r\n @Output() metodoRegresar = new EventEmitter();\r\n @Output() metodoRegresarAdicional = new EventEmitter();\r\n\r\n @ViewChild(OverlayPanel) panel: OverlayPanel;\r\n public eventoPanel;\r\n @ContentChild(TemplateRef) inputFilters: TemplateRef<any>;\r\n\r\n filterForm: FormGroup = new FormGroup({});\r\n\r\n chips: any[] = [];\r\n\r\n isApply: boolean = false;\r\n\r\n private clickListener: Function | null = null;\r\n\r\n private renderer = inject(Renderer2);\r\n private elRef = inject(ElementRef);\r\n private dialog = inject(Dialog, { optional: true, self: true });\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.filtros === undefined) {\r\n } else {\r\n this.filtros.forEach((control) => {\r\n this.filterForm.addControl(control.field, new FormControl());\r\n });\r\n }\r\n }\r\n\r\n onHide() {\r\n if (!this.isApply) {\r\n this.filtros.forEach((filtro) => {\r\n const chipActive = this.chips.find(\r\n (chip) => chip.field === filtro.field\r\n );\r\n this.filterForm.get(filtro.field).setValue(chipActive?.value);\r\n });\r\n }\r\n this.isApply = false;\r\n }\r\n\r\n abrirPanel(event): void {\r\n this.eventoPanel = event;\r\n this.panel.show(event);\r\n this.showOverlay(this.overlayPanel, event)\r\n }\r\n\r\n limpiarFiltros() {\r\n this.isApply = false;\r\n this.chips = [];\r\n this.filterForm.reset();\r\n this._updateFilters();\r\n }\r\n\r\n aplicarFiltros() {\r\n this.isApply = true;\r\n this.panel.hide();\r\n this.chips = [];\r\n this._updateFilters();\r\n }\r\n\r\n removeChip(chip) {\r\n this._updateFilters(chip);\r\n }\r\n\r\n _updateFilters(chip?: any): void {\r\n const filters = {};\r\n this.filtros.forEach((filtro) => {\r\n if (chip?.field !== filtro.field) {\r\n const value = this.filterForm.get(filtro.field).value;\r\n if (value) {\r\n filters[filtro.field] = { value: value, matchMode: filtro.matchMode };\r\n\r\n if (!chip) {\r\n if (Array.isArray(value)) {\r\n var mostrar = '';\r\n for (let i = 0; i < value.length; i++) {\r\n if (i > 0) {\r\n mostrar = mostrar + ' - '\r\n }\r\n if (value[i] instanceof Date) {\r\n mostrar = mostrar + new DatePipe('en-US').transform(value[i], 'dd/MM/yyyy')\r\n } else {\r\n mostrar = mostrar + value[i]\r\n }\r\n }\r\n this.chips.push({\r\n field: filtro.field,\r\n value: value,\r\n label: filtro.values ? filtro.values(value) : value,\r\n header: filtro.header,\r\n disabled: filtro.disabled,\r\n labelMostrar: mostrar\r\n });\r\n } else {\r\n this.chips.push({\r\n field: filtro.field,\r\n value: value,\r\n label: filtro.values ? filtro.values(value) : value,\r\n header: filtro.header,\r\n disabled: filtro.disabled,\r\n labelMostrar: filtro.formatDate\r\n ? new DatePipe('en-US').transform(value, 'dd/MM/yyyy')\r\n : filtro.values\r\n ? filtro.values(value)\r\n : value,\r\n formatDate: filtro.formatDate,\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n this.chips = this.chips.filter((chip) => chip.field !== filtro.field);\r\n this.filterForm.get(filtro.field).setValue(null);\r\n }\r\n });\r\n if (this.datatable) {\r\n if (this.datatable.table?.filters) {\r\n this.datatable.table.filters = filters;\r\n this.datatable.table._filter();\r\n } else {\r\n this.datatable.filters = filters;\r\n this.datatable._filter();\r\n }\r\n } else {\r\n this.metodoRegresar.emit(filters);\r\n }\r\n\r\n if (this.metodoRegresarAdicional) {\r\n this.metodoRegresarAdicional.emit(filters);\r\n }\r\n }\r\n\r\n //listener del overlay @autor Jesus-Ramirez\r\n showOverlay(op: any, event: Event) {\r\n this.clickListener = null\r\n // Mostrar el overlay panel\r\n op.show(event); //muestra el overlay-panel\r\n if (this.dialog) /* Si el overlay está dentro de un p-dialog, usa el método de ocultar al perder el foco*/ {\r\n // Eliminar cualquier listener anterior\r\n if (this.clickListener) {\r\n this.clickListener();\r\n }\r\n // adicionar listener para cerrar el overlay al hacer clic fuera de él\r\n this.clickListener = this.renderer.listen('document', 'click', (clickEvent: Event) => {\r\n const clickedInsideOverlay = this.elRef.nativeElement.contains(clickEvent.target);\r\n if (!clickedInsideOverlay) {\r\n op.hide();\r\n this.removeClickListener(); // remueve el overlay\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeClickListener() {\r\n if (this.clickListener) {\r\n this.clickListener();\r\n this.clickListener = null;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.removeClickListener();\r\n }\r\n}\r\n","<div class=\"flex justify-content-start align-items-center\">\r\n <div class=\"flex align-items-center\">\r\n <h4 class=\"m-0 mr-2 text-black-alpha-90\">Filtros</h4>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n icon=\"pi pi-filter\"\r\n class=\"p-button-rounded p-button-outlined\"\r\n (click)=\"abrirPanel($event)\"\r\n ></button>\r\n </div>\r\n <div class=\"ml-3\">\r\n <p-chip\r\n *ngFor=\"let chip of chips\"\r\n [label]=\"chip.header + ': ' + (chip.labelMostrar.length > 100 ? chip.labelMostrar.substring(0, 100) + '...' : chip.labelMostrar)\"\r\n styleClass=\"m-1\"\r\n [removable]=\"chip.disabled ? false : true\"\r\n (onRemove)=\"removeChip(chip)\"\r\n ></p-chip>\r\n </div>\r\n</div>\r\n\r\n<p-overlayPanel #op (onHide)=\"onHide()\" [dismissable]=\"false\" [showCloseIcon]=\"true\">\r\n <div class=\"grid p-input-filled\">\r\n <form [formGroup]=\"filterForm\" class=\"p-fluid col-12\">\r\n <ng-container *ngTemplateOutlet=\"inputFilters; context: { $implicit: filterForm }\"></ng-container>\r\n <div class=\"flex justify-content-end mt-2 align-items-center\">\r\n <button pButton pRipple (click)=\"aplicarFiltros()\" class=\"ml-2\">{{'link_aplicar' | translate}}</button>\r\n <button pButton pRipple (click)=\"limpiarFiltros()\" icon=\"glyphicons glyphicons-cleaning\" class=\"p-button-rounded p-button-outlined ml-2\"></button>\r\n </div>\r\n </form>\r\n </div>\r\n</p-overlayPanel>\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { PrimeTemplate } from 'primeng/api';\r\nimport { Table, TableModule } from 'primeng/table';\r\nimport { TableColumn } from '../../modelos/table-column.model';\r\nimport { CommonModule, DatePipe, TitleCasePipe } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\n\r\n@Component({\r\n selector: 'app-tabla-general',\r\n imports: [TableModule, TitleCasePipe, DatePipe, TranslateModule, CommonModule, PaginatorModule],\r\n standalone: true,\r\n templateUrl: './tabla-general.component.html',\r\n styleUrls: ['./tabla-general.component.scss'],\r\n})\r\nexport class TablaGeneralComponent implements OnInit, AfterContentInit, AfterViewInit {\r\n @Input() dataKey: string;\r\n\r\n @Input() value: any[] = [];\r\n\r\n @Input() columns: TableColumn[] = [];\r\n\r\n @Input() rows: number;\r\n\r\n @Input() totalRecords: number;\r\n\r\n @Input() loading: boolean;\r\n\r\n @Input() ocultarFraccionador: boolean;\r\n\r\n @Output() onLoad: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output() onRowSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate>;\r\n\r\n @ViewChild(Table) table: Table;\r\n\r\n headerTemplate: TemplateRef<any>;\r\n bodyTemplate: TemplateRef<any>;\r\n rowExpansionTemplate: TemplateRef<any>;\r\n\r\n showFrozen: boolean = false;\r\n minTableWidth: number = 200;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.minTableWidth = this.columns.reduce((acc, column) => {\r\n return acc + column.width;\r\n }, 0);\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.templates.forEach((item) => {\r\n switch (item.getType()) {\r\n case 'header':\r\n this.headerTemplate = item.template;\r\n break;\r\n case 'body':\r\n this.bodyTemplate = item.template;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => this._shouldFreezeTable());\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n this._shouldFreezeTable();\r\n }\r\n\r\n _shouldFreezeTable() {\r\n this.showFrozen = this.table.tableViewChild.nativeElement.parentElement.clientWidth < this.minTableWidth;\r\n }\r\n\r\n parseDate(obj) {\r\n return new Date(obj);\r\n }\r\n}\r\n","<p-table\r\n [dataKey]=\"dataKey\"\r\n [value]=\"value\"\r\n [columns]=\"columns\"\r\n selectionMode=\"single\"\r\n [scrollable]=\"true\"\r\n responsiveLayout=\"scroll\"\r\n scrollDirection=\"horizontal\"\r\n styleClass=\"p-datatable-striped\"\r\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\r\n [paginator]=\"totalRecords > rows\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n [lazy]=\"true\" [loading]=\"loading\"\r\n (onLazyLoad)=\"onLoad.emit($event)\"\r\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\r\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\r\n>\r\n <!-- Header Template-->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <ng-container *ngIf=\"headerTemplate; else header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\r\n </ng-container>\r\n <ng-template #header>\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\r\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\r\n {{ col.header | titlecase }}\r\n </th>\r\n </ng-container>\r\n <ng-template #headCell>\r\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\r\n {{ col.header | titlecase }}\r\n </th>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <!-- Body Template-->\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-row\r\n let-rowIndex=\"rowIndex\"\r\n let-columns=\"columns\"\r\n let-expanded=\"expanded\"\r\n let-rowgroup=\"rowgroup\"\r\n let-rowspan=\"rowspan\"\r\n >\r\n <ng-container *ngIf=\"bodyTemplate; else body\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate;\r\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\r\n \"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #body>\r\n <tr [pSelectableRow]=\"row\">\r\n <ng-container *ngFor=\"let col of columns\">\r\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\r\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\r\n <ng-container *ngIf=\"col.values; else plainData\">\r\n {{ col.values[row[col.field]] }}\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <ng-template #bodyCell>\r\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\r\n <ng-container *ngIf=\"col.values; else plainData\">\r\n {{ col.values[row[col.field]] }}\r\n </ng-container>\r\n </td>\r\n </ng-template>\r\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n ],\r\n})\r\nexport class WebCommonModule { \r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { UtilsService } from '../../core/servicios/utils.service';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n \r\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n queryForList(general: GeneralModel,ambiente?: any): Observable<any[]> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<any[]>(`${ambiente}/requieretoken/general/queryForList`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n queryForObject(general: GeneralModel,ambiente?: any): Observable<any> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/queryForObject`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cantidadRegistros(general: GeneralModel,ambiente?: any): Observable<number> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/cantidadRegistros`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n crearRegistro(general: GeneralModel,ambiente?: any): Observable<any> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/crearRegistro`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n delete(general: GeneralModel,ambiente?: any): Observable<number> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/delete`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n update(general: GeneralModel,ambiente?: any): Observable<number> {\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<number>(`${ambiente}/requieretoken/general/update`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n procedure(general: GeneralModel,ambiente?: any): Observable<any> {\r\n console.log('Objeto: ' + JSON.stringify(general));\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n console.log('INGRESO PROCEDIMIENTO: ' + ambiente + '/requieretoken/general/procedure');\r\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/procedure`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n obtenerJasper(rutaJasper,ambiente?: any): Observable<any> {\r\n let formData = new FormData();\r\n formData.append(\"jasper\", rutaJasper);\r\n let url = this.utilsService.obtenerUrlApi();\r\n if (!ambiente){\r\n ambiente = url;\r\n }\r\n return this.httpClient.post<any>(`${ambiente}/requieretoken/general/obtenerJasper`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n}\r\n\r\n\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { GeneralService } from './general.service';\r\nimport { UtilsService } from '../../core/servicios/utils.service';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class cargarmapasGlobal {\r\n listatempString: any[];\r\n listaTempNumberString: any[];\r\n urlapi: any;\r\n constructor( private generalService: GeneralService, private activatedRoute: ActivatedRoute, private utilsService: UtilsService,\r\n ) { \r\n\r\n this.urlapi = this.activatedRoute.data.toPromise();\r\n }\r\n\r\n async cargarSelectItemString(nombrekey: string, nombreLabel: string, filtro: GeneralModel): Promise<any[]> {\r\n let mapatemp: Map<string, String> = new Map<string, String>();\r\n let data\r\n data = await this.generalService.queryForList(filtro,this.urlapi['environment.urlapisara']).toPromise();\r\n data.forEach(element => {\r\n mapatemp.set(element[nombrekey], this.utilsService.capitalizeFully(element[nombreLabel]));\r\n });\r\n return this.listatempString = Array.from(mapatemp, ([key, label]) => ({ key, label }));\r\n }\r\n\r\n async cargarSelectItemConNumberString(nombrekey: string, nombreLabel: string, filtro: GeneralModel): Promise<any[]> {\r\n let mapatemp: Map<number, String> = new Map<number, String>();\r\n let data\r\n data = await this.generalService.queryForList(filtro,this.urlapi['environment.urlapisara']).toPromise();\r\n data.forEach(element => {\r\n mapatemp.set(parseInt(element[nombrekey]), this.utilsService.capitalizeFully(element[nombreLabel]));\r\n });\r\n return this.listaTempNumberString = Array.from(mapatemp, ([key, label]) => ({ key, label }));\r\n }\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ParametrosNavegacionService {\r\n\r\n parametros: any;\r\n\r\n constructor() { }\r\n\r\n setParametros(parametros: any) {\r\n this.parametros = parametros;\r\n }\r\n\r\n getParametros() {\r\n return this.parametros;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\n\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n export class FuenteGeneralService{\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n getUrl(): string | null {\r\n return this.cookieService.get('urlnucleo')\r\n }\r\n\r\n obtenerListaServicio(general: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/obtenerListaServicio`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n obtenerListaHomologacion(general: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/obtenerListaHomologacion`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n cargarCampos(general: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/cargarCampos`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n guardarCampos(general: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/webcommon/guardarCamposServicio`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n validarCondicion(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/webcommon/validarcondicion`, general);\r\n }\r\n eliminarServicio(general: any): Observable<number> {\r\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/webcommon/eliminarServicio`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n validarFormulaFuente(general: any): Observable<boolean> {\r\n return this.httpClient.post<boolean>(`${this.getUrl()}/requieretoken/webcommon/validarFormulaFuente`, general);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EncriptadoBasicoService {\r\n\r\n tam: any[] = ['e', 'a', 'c', 'd'];\r\n\r\n constructor() { }\r\n\r\n encriptar(original: string): string {\r\n\r\n if (original == null) {\r\n return null;\r\n }\r\n\r\n let res: string = '';\r\n\r\n for (let index = 0; index < original.length; index++) {\r\n let cod: string = Number(original.charCodeAt(index)).toString(16);\r\n res = res.concat(this.tam[cod.length] + cod);\r\n }\r\n return res;\r\n\r\n }\r\n\r\n desencriptar(encriptado: string): string {\r\n if (encriptado == null) {\r\n return null;\r\n }\r\n let res: string = '';\r\n let i: number = 0;\r\n while (i < encriptado.length) {\r\n let largo = this.binarySearch(this.tam, encriptado.charAt(i));\r\n let letra = String.fromCharCode( parseInt(encriptado.substring(i + 1, i + 1 + largo),16));\r\n res = res.concat(letra);\r\n i += 1 + largo;\r\n }\r\n return res.toString();\r\n }\r\n\r\n binarySearch(arr, value): any {\r\n var low = 0 , high = arr.length -1 ,mid ; \r\n while (low <= high){\r\n mid = Math.floor((low+high)/2); \r\n if(arr[mid]==value) return mid ; \r\n else if (arr[mid]<value) low = mid+1;\r\n else high = mid-1; \r\n }\r\n return -1 ;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\n\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n export class CargueLineaService{\r\n\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n \r\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n \r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n eliminarProceso(general): Observable<any[]> {\r\n let url = this.cookieService.get('urlnucleo')\r\n return this.httpClient.post<any[]>(`${url}/requieretoken/sarageneral/carguelinea/eliminarProceso`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n ejecutar(accion, archivo, fuenteDTO, procesoDTO, entradas, campos, datos, lineasCargadas): Observable<HttpEvent<{}>> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"archivo\", archivo);\r\n formData.append(\"fuenteDTO\", JSON.stringify(fuenteDTO));\r\n formData.append(\"accion\", accion);\r\n formData.append(\"procesoDTO\", JSON.stringify(procesoDTO));\r\n formData.append(\"entradas\", JSON.stringify(entradas));\r\n formData.append(\"campos\", JSON.stringify(campos));\r\n formData.append(\"datos\", JSON.stringify(datos));\r\n formData.append(\"lineasCargadas\", JSON.stringify(lineasCargadas));\r\n\r\n const req = new HttpRequest('POST', `${url}/requieretoken/sarageneral/carguelinea/ejecutar`, formData, {\r\n reportProgress: true,\r\n })\r\n return this.httpClient.request(req).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cancelarProceso(general): Observable<any> {\r\n let url = this.cookieService.get('urlnucleo')\r\n return this.httpClient.post<any>(`${url}/requieretoken/sarageneral/carguelinea/cancelarProceso`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, map, of, throwError } from 'rxjs';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { UtilsService } from '../../core/servicios/utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EjecucionReporteService {\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n console.log(error)\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n getDatosEjecucionReporte(reporte): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/consultar`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n guardarReporte(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/guardarReporte`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n eliminarReporte(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/eliminarReporte`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n consultarListas(): Observable<any> {\r\n return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/consultarListas`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n guardarEntrada(entrada: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/guardarEntrada`, entrada).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cargarCampos(entrada: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/cargarCampos`, entrada).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n construirColumnas(entrada: any): Observable<any[]> {\r\n return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/construirColumnas`, entrada).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n generarJasper(llaveReporte, jasper): Observable<any> {\r\n let formData = new FormData();\r\n formData.append(\"llaveReporte\", llaveReporte);\r\n formData.append(\"jasper\", jasper);\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/generarJasper`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n eliminarEjecucionReporte(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/eliminarEjecucionReporte`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n obtenerListaEntradaEjecucion(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/obtenerListaEntradaEjecucion`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n obtenerSentencia(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/obtenerSentencia`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n enviarSegundoPlano(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/enviarSegundoPlano`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n descargarReporte(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/descargarReporte`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n generarTabla(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/generarTabla`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n actualizarReporteColumnaOrden(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/actualizarReporteColumnaOrden`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n descargarArchivo(parametroGeneral: any): Observable<any> {\r\n\r\n const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/generalSara/descargarArchivo`;\r\n return this.httpClient.post(url, parametroGeneral, {\r\n \r\n responseType: 'blob',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n }\r\n \r\n descargarArchivoMasivo(parametroGeneral: any): Observable<Blob> {\r\n\r\n const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/generalSara/descargarArchivoMasivo`;\r\n return this.httpClient.post(url, parametroGeneral, {\r\n responseType: 'blob',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n }\r\n\r\n verGrafico(reporte: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/reporte/verGrafico`, reporte).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n}","import { HttpClient, HttpRequest, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { UtilsService } from '../../core/servicios/utils.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FechaUtilsService {\r\n\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService, private utilService: UtilsService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n horaMinuto(general: any): Observable<any> {\r\n\r\n const year = general.getFullYear();\r\n const month = general.getMonth() + 1;\r\n const day = general.getDate();\r\n const hours = general.getHours();\r\n const minutes = general.getMinutes();\r\n const seconds = general.getUTCSeconds();\r\n const milliseconds = general.getUTCMilliseconds();\r\n const fechaFormateada = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${milliseconds}`;\r\n\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/horaMinuto`, fechaFormateada).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n horaminutoFecha(general: any): Observable<any> {\r\n\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/horaminutoFecha`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n formatFecha(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/formatFecha`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n sumaDiaFecha(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/sumaDiaFecha`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n primerDiaSemana(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/primerDiaSemana`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cambiarDiaSemana(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/cambiarDiaSemana`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n calcularHoras(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/calcularHoras`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n fechaTexto(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/fechaTexto`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n fechasTexto(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/fechasTexto`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n obtenerFecha(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/obtenerFecha`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n ultimoDiaMes(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/webcommon/fechaUtils/ultimoDiaMes`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomologacionService {\r\n\r\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private cookieService: CookieService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n getUrl(): string | null {\r\n return this.cookieService.get('urlnucleo')\r\n }\r\n\r\n obtenerListaHomologacion(general: any): Observable<any> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/sarageneral/obtenerListaHomologacion`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n obtenerListaDestino(general: any): Observable<any> {\r\n return this.httpClient.post<any[]>(`${this.getUrl()}/requieretoken/sarageneral/homologacion/obtenerListaDestino`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { throwError, Observable, catchError } from 'rxjs';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { FuenteDatoModel } from '../../seguridad/modelos/FuenteDato';\r\nimport { ColumnaFuenteModel } from '../../seguridad/modelos/ColumnaFuenteModel';\r\nimport { ObjetoReporteModel } from '../../seguridad/modelos/ObjetoReporteModel';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ReportesService {\r\n\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n obtenerProcesoExterno(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/obtenerProcesoExterno`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getUrl(): string | null {\r\n return this.cookieService.get('urlnucleo')\r\n }\r\n\r\n obtenerRutaPlantilla(general: any): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/obtenerRutaPlantilla`, general).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getLlaves(tablas: string[]): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getLlaves`, tablas).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n validarQuery(query: string): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/validarQuery`, query).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n eliminarFuenteDatosConHijos(query: FuenteDatoModel): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/validarQuery`, query).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n getColumnasSql(query: string): Observable<ColumnaFuenteModel[]> {\r\n return this.httpClient.post<ColumnaFuenteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getColumnasSql`, query).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n actualizarColumnasFuente(fuente: FuenteDatoModel, columnas: ColumnaFuenteModel[]): Observable<void> {\r\n let form = new FormData();\r\n form.append('fuente', JSON.stringify(fuente));\r\n form.append('columnas', JSON.stringify(columnas))\r\n return this.httpClient.post<void>(`${this.getUrl()}/requieretoken/sarageneral/reporte/actualizarColumnasFuente`, form).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n insertarFuenteDato(fuente: FuenteDatoModel): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/insertarFuenteDato`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n actualizarFuenteDato(fuente: FuenteDatoModel): Observable<void> {\r\n return this.httpClient.post<void>(`${this.getUrl()}/requieretoken/sarageneral/reporte/actualizarFuenteDato`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n consultarUnicaFuenteDato(filtro: FuenteDatoModel): Observable<any> {\r\n return this.httpClient.post<any>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarUnicaFuenteDato`, filtro).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n consultarColumnasFuente(filtro: ColumnaFuenteModel): Observable<ColumnaFuenteModel[]> {\r\n return this.httpClient.post<ColumnaFuenteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarColumnasFuente`, filtro).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n consultarFuenteDato(fuente: FuenteDatoModel): Observable<FuenteDatoModel[]> {\r\n return this.httpClient.post<FuenteDatoModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/consultarFuenteDato`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n cantidadFuenteDato(fuente: FuenteDatoModel): Observable<number> {\r\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/sarageneral/reporte/cantidadFuenteDato`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n getObjetos(fuente: ObjetoReporteModel): Observable<ObjetoReporteModel[]> {\r\n return this.httpClient.post<ObjetoReporteModel[]>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getObjetos`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n getCantidadObjetos(fuente: ObjetoReporteModel): Observable<number> {\r\n return this.httpClient.post<number>(`${this.getUrl()}/requieretoken/sarageneral/reporte/getCantidadObjetos`, fuente).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'fuentePipe',\r\n})\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FuentePipe implements PipeTransform {\r\n\r\n FUENTE_ARCHIVO = \"A\";\r\n FUENTE_WS = \"S\";\r\n FUENTE_ARCHIVO_DESC = \"Archivo Plano\";\r\n FUENTE_WS_DESC = \"Servicio Web\";\r\n\r\n ORIGEN_DATOS = [\r\n { codigo: this.FUENTE_ARCHIVO, nombre: this.FUENTE_ARCHIVO_DESC },\r\n { codigo: this.FUENTE_WS, nombre: this.FUENTE_WS_DESC },\r\n ]\r\n\r\n ELEMPLEO_GETRESUME_HOJA = \"ELEMPLEO_GETRESUMEE_HOJA\";\r\n ELEMPLEO_GETRESUME_HOJA_DESC = \"elempleo.com/getResumeeHoja\";\r\n ELEMPLEO_GETRESUME_EDU_FORMAL = \"ELEMPLEO_GETRESUMEE_EDU_FORMAL\";\r\n ELEMPLEO_GETRESUME_EDU_FORMAL_DESC = \"elempleo.com/getResumeeFormalEducation\";\r\n ELEMPLEO_GETRESUME_EXP = \"ELEMPLEO_GETRESUMEE_EXP\";\r\n ELEMPLEO_GETRESUME_EXP_DESC = \"elempleo.com/getResumeeExperience\";\r\n ELEMPLEO_GETRESUME_EDU = \"ELEMPLEO_GETRESUMEE_EDU\";\r\n ELEMPLEO_GETRESUME_EDU_DESC = \"elempleo.com/getResumeeEducation\";\r\n ELEMPLEO_GETRESUME_DATO_ADICI = \"ELEMPLEO_GETRESUMEE_DATO_ADICI\";\r\n ELEMPLEO_GETRESUME_DATO_ADICI_DESC = \"elempleo.com/getResumeeAditionalData\";\r\n ELEMPLEO_GETRESUME_LANG = \"ELEMPLEO_GETRESUMEE_IDIOMA\";\r\n ELEMPLEO_GETRESUME_LANG_DESC = \"elempleo.com/getResumeeLanguaje\";\r\n SANITAS_EBS = \"SANITAS_EBS\";\r\n SANITAS_EBS_DESC = \"sanitasEBS/getCargueNovedadesEbs\";\r\n\r\n\r\n SERVICIOS_WEB = [\r\n { codigo: this.ELEMPLEO_GETRESUME_HOJA, nombre: this.ELEMPLEO_GETRESUME_HOJA_DESC },\r\n { codigo: this.ELEMPLEO_GETRESUME_EDU_FORMAL, nombre: this.ELEMPLEO_GETRESUME_EDU_FORMAL_DESC },\r\n { codigo: this.ELEMPLEO_GETRESUME_EXP, nombre: this.ELEMPLEO_GETRESUME_EXP_DESC },\r\n { codigo: this.ELEMPLEO_GETRESUME_EDU, nombre: this.ELEMPLEO_GETRESUME_EDU_DESC },\r\n { codigo: this.ELEMPLEO_GETRESUME_DATO_ADICI, nombre: this.ELEMPLEO_GETRESUME_DATO_ADICI_DESC },\r\n { codigo: this.ELEMPLEO_GETRESUME_LANG, nombre: this.ELEMPLEO_GETRESUME_LANG_DESC },\r\n { codigo: this.SANITAS_EBS, nombre: this.SANITAS_EBS_DESC },\r\n ]\r\n\r\n\r\n PROCESO_CARGUE = \"N\";\r\n PROCESO_BPM = \"S\";\r\n PROCESO_ETAPASELECCION = \"E\";\r\n\r\n ROMPIMIENTO = \"R\";\r\n AGRUPAMIENTO = \"A\";\r\n UNICO_REGISTRO = \"U\";\r\n ROMPIMIENTO_DESC = \"ROMPIMIENTO\";\r\n AGRUPAMIENTO_DESC = \"AGRUPAMIENTO\";\r\n UNICO_REGISTRO_DESC = \"UNICO REGISTRO\";\r\n\r\n LISTA_TIPO_FUENTE = [\r\n { codigo: this.ROMPIMIENTO, nombre: this.ROMPIMIENTO_DESC },\r\n { codigo: this.AGRUPAMIENTO, nombre: this.AGRUPAMIENTO_DESC },\r\n { codigo: this.UNICO_REGISTRO, nombre: this.UNICO_REGISTRO_DESC },\r\n ]\r\n\r\n COMA = \",\";\r\n PUNTO_COMA = \";\";\r\n TAB = \"T\";\r\n PIPELINE = \"|\";\r\n SIN_SEPARADOR = \"S\";\r\n COMA_DESC = \"COMA\";\r\n PUNTO_COMA_DESC = \"PUNTO COMA\";\r\n TAB_DESC = \"TAB\";\r\n PIPELINE_DESC = \"PIPELINE\";\r\n SIN_SEPARADOR_DESC = \"SIN SEPARADOR\";\r\n\r\n LISTA_SEPARADORES = [\r\n { codigo: this.SIN_SEPARADOR, nombre: this.SIN_SEPARADOR_DESC },\r\n { codigo: this.COMA, nombre: this.COMA_DESC },\r\n { codigo: this.PUNTO_COMA, nombre: this.PUNTO_COMA_DESC },\r\n { codigo: this.TAB, nombre: this.TAB_DESC },\r\n { codigo: this.PIPELINE, nombre: this.PIPELINE_DESC },\r\n ]\r\n\r\n GRUPO = \"G\";\r\n LINEA = \"L\";\r\n SERVICIO = \"S\";\r\n\r\n CONTENIDO_EXCEL = \"application/vnd.ms-excel\";\r\n\r\n LOGIN_PAR = \"P\";\r\n FIJO = \"F\";\r\n\r\n LOGIN_PAR_DESC = \"Login Par\";\r\n FIJO_DESC = \"Fijo\";\r\n\r\n LISTA_TIPORECURSO = [\r\n { codigo: this.LOGIN_PAR, nombre: this.LOGIN_PAR_DESC },\r\n { codigo: this.FIJO, nombre: this.FIJO_DESC },\r\n ]\r\n\r\n GRUPO_EJECUCION = \"G\";\r\n SERVICIO_EJECUCION = \"S\";\r\n GRUPO_EJECUCION_DESC = \"Por el orden de los grupos\";\r\n SERVICIO_EJECUCION_DESC = \"Por el orden de los servicios\";\r\n\r\n LISTA_EJECUCION = [\r\n { codigo: this.GRUPO_EJECUCION, nombre: this.GRUPO_EJECUCION_DESC },\r\n { codigo: this.SERVICIO_EJECUCION, nombre: this.SERVICIO_EJECUCION_DESC },\r\n ]\r\n\r\n BASEDATOS = \"S\";\r\n NOBASEDATOS = \"N\";\r\n BASEDATOSEGUNDO = \"X\";\r\n\r\n BASEDATOS_DESC = \"Proceso por base de datos\";\r\n NOBASEDATOS_DESC = \"Proceso por aplicacion\";\r\n BASEDATOSEGUNDO_DESC = \"Proceso por base datos(segundo plano)\";\r\n\r\n LISTA_MOTOR = [\r\n { codigo: this.BASEDATOS, nombre: this.BASEDATOS_DESC },\r\n { codigo: this.NOBASEDATOS, nombre: this.NOBASEDATOS_DESC },\r\n { codigo: this.BASEDATOSEGUNDO, nombre: this.BASEDATOSEGUNDO_DESC },\r\n ]\r\n\r\n FECHA = \"F\";\r\n\t LOGICO = \"L\";\r\n\t TEXTO = \"T\";\r\n\t NUMERO = \"N\";\r\n\t DECIMAL = \"D\";\r\n\t LLAVE = \"K\";\r\n\t FECHA_DESC = \"Fecha\";\r\n\t TEXTO_DESC = \"Texto\";\r\n\t NUMERO_DESC = \"Numero\";\r\n\t DECIMAL_DESC = \"Decimal\";\r\n\t LOGICO_DESC = \"Login\";\r\n\t LLAVE_DESC = \"Llave Generada\";\r\n\r\n LISTA_TIPO_DATO = [\r\n { codigo: this.FECHA, nombre: this.FECHA_DESC },\r\n { codigo: this.TEXTO, nombre: this.TEXTO_DESC },\r\n { codigo: this.NUMERO, nombre: this.NUMERO_DESC },\r\n { codigo: this.DECIMAL, nombre: this.DECIMAL_DESC },\r\n { codigo: this.LOGICO, nombre: this.LOGICO_DESC },\r\n { codigo: this.LLAVE, nombre: this.LLAVE_DESC },\r\n ]\r\n\r\n LISTA_TIPO_DATO_MP =\r\n\t[\r\n\t\t{codigo: this.FECHA, nombre: this.FECHA_DESC},\r\n\t\t{codigo: this.TEXTO, nombre: this.TEXTO_DESC},\r\n\t\t{codigo: this.NUMERO, nombre: this.NUMERO_DESC},\r\n\t\t{codigo: this.DECIMAL, nombre: this.DECIMAL_DESC},\r\n\t]\r\n\t\r\n\r\n FORMATOHORAFRACCION = \"HORAFRACCION\";\r\n\t FORMATOHORAFRACCIONDES = \"De Numero Decimal a Hora Fraccion\";\r\n\t FORMATOHORADECIMAL = \"HORADECIMAL\";\r\n\t FORMATOHORADECIMALDES = \"De Hora Fraccion a Numero decimal\";\r\n NOAPLICA=\"No aplica\";\r\n\r\n LISTA_FORMATOS = [\r\n { codigo: '', nombre: this.NOAPLICA },\r\n { codigo: this.FORMATOHORAFRACCION, nombre: this.FORMATOHORAFRACCIONDES },\r\n { codigo: this.FORMATOHORADECIMAL, nombre: this.FORMATOHORADECIMALDES },\r\n ]\r\n\r\n ITEM = \"I\";\r\n\tFINALPROCESO = \"F\";\r\n\tITEMDESC = \"En cada Item\";\r\n\tFINALPROCESODESC = \"Al final del proceso\";\r\n\r\n LISTA_MOMENTOS = [\r\n { codigo: this.ITEM, nombre: this.ITEMDESC },\r\n { codigo: this.FINALPROCESO, nombre: this.FINALPROCESODESC },\r\n ]\r\n\r\n MENSAJE_OBLIGATORIO = \"obligatorio\";\r\n\tMENSAJE_CAMPOS_OBLIGATORIOS = \"Existen campos obligatorios\";\r\n\tMENSAJE_NO_EXISTEN_SEVICIOS = \"La aplicacion no posee servicios para el manejo de fuentes\";\r\n\tMENSAJE_NO_REPETIR_DESCRIPCION_CAMPOS = \"Ya existe un campo o entrada con la misma descripcion\";\r\n\tMENSAJE_TIPO_DATO_CAMPO_NO_COINCIDE = \"el tipo de dato no coincide con el de la entrada\";\r\n\tMENSAJE_NO_EXISTEN_HOMOLOGACIONES = \"La aplicacion no posee homologaciones para el manejo de fuentes\";\r\n\tMENSAJE_EXISTEN_ERRORES_FORMULA = \"Existen campos con errores en la formula\";\r\n\tMENSAJE_SERVICIO_FORMULA_FILTRO_NO_VALIDA = \"El filtro del servicio no posee la estructura correcta Ej. {campo} != 'constante' and {campo2}= 10\";\r\n\r\n\r\n transform(value: any, ...args: any): any {\r\n let result = value;\r\n if (args[0] == 'listaTipoDato') { this.LISTA_TIPO_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaTipoFuente') { this.LISTA_TIPO_FUENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaSeparador') { this.LISTA_SEPARADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaTipoRecurso') { this.LISTA_TIPORECURSO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n if (args[0] == 'listaTipoDatoMP') { this.LISTA_TIPO_DATO_MP.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaMomento') { this.LISTA_MOMENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaTipoDato') { this.TIPOS_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaTipoDatoColumna') { this.TIPOS_DATO_COLUMNA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaTipoDatoMarcadores') { this.LISTA_MARCADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaTipoGrafico') { this.LISTA_TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaTipoGraficoJFC') { this.LISTA_TIPO_GRAFICO_JFC.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n // if (args[0] == 'listaRecursoGrafica') { this.LISTA_RECURSO_GRAFICA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\r\n return result;\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { ParametrosGeneralModel } from '../../../../seguridad/modelos/ParametrosGeneralModel';\r\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\r\nimport { FuenteGeneralService } from '../../../services/fuentegeneral.service';\r\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\r\nimport { FuenteServicioModel } from '../../../../seguridad/modelos/FuenteServicioModel'; \r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { TableModule } from 'primeng/table';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\n@Component({\r\n selector: 'app-fuente-general-servicio',\r\n imports: [ButtonModule,TranslateModule,InputTextModule, CommonModule, ReactiveFormsModule, DropdownModule, ConfirmPopupModule, InputTextareaModule, AccordionModule, TableModule, FormsModule, FiltroGeneralComponent, TablaGeneralComponent,],\r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './fuente-general-servicio.component.html',\r\n styleUrls: ['./fuente-general-servicio.component.scss']\r\n})\r\nexport class FuenteGeneralServicioComponent implements OnInit {\r\n cargandoFormulario: boolean;\r\n listaServicios: any[];\r\n formulario: FormGroup;\r\n listaFiltro: any[];\r\n @Input()\r\n fuenteGeneral: FuenteGeneralModel;\r\n @Input()\r\n fuenteServicioDTO: FuenteServicioModel;\r\n @Input()\r\n unica: boolean;\r\n @Input()\r\n servicios;\r\n @Input()\r\n camposFuente: [];\r\n @Input()\r\n isNew: boolean;\r\n @Input()\r\n fuente;\r\n @Output()\r\n regresar = new EventEmitter();\r\n mapaservicio;\r\n campos: any[] = [];\r\n homologaciones: any[] = [];\r\n mostrarFiltro: boolean;\r\n serviciosValidar: FuenteServicioModel[] = [];\r\n mapaFiltros;\r\n paginator = {\r\n rows: 5,\r\n totalRecords: 0,\r\n };\r\n cargar: boolean;\r\n validadorService: boolean = true;\r\n constructor(private fuenteService: FuenteGeneralService, public fuentePipe: FuentePipe, public generalPipe: GeneralPipe, private generalService: GeneralService,\r\n private cargarMapas: cargarmapasGlobal, private notificacionesBusService: ToastService, private confirmationService: ConfirmationService, private formBuilder: FormBuilder, public utilsService: UtilsService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.ver();\r\n }\r\n\r\n async ver() {\r\n try {\r\n if (!this.isNew) {\r\n this.fuenteServicioDTO = this.fuenteServicioDTO;\r\n } else {\r\n this.fuenteServicioDTO = new FuenteServicioModel();\r\n }\r\n await this.cargarMapaServicios();\r\n this.homologaciones = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\r\n this.fuente = this.fuenteGeneral.llaveTabla;\r\n await this.cargarFormulario();\r\n this.serviciosValidar = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, { fuente: this.fuente, tipo: 'Servicio' })).toPromise();\r\n this.mostrarFiltro = false;\r\n await this.cargarCampos();\r\n if (this.fuenteServicioDTO.predefinido != null) {\r\n this.mostrarFiltro = true;\r\n }\r\n this.cargar = true\r\n } catch (error) {\r\n console.log(JSON.stringify(error));\r\n }\r\n }\r\n\r\n async cargarFormulario() {\r\n this.formulario = this.formBuilder.group({\r\n fuente: new FormControl(this.fuenteServicioDTO.fuente ? this.fuenteServicioDTO.fuente : this.fuente),\r\n llaveTabla: new FormControl(this.fuenteServicioDTO?.llaveTabla),\r\n descripcion: new FormControl(this.fuenteServicioDTO.descripcion),\r\n servicio: new FormControl(this.fuenteServicioDTO?.servicio, [Validators.required]),\r\n orden: new FormControl(this.fuenteServicioDTO?.orden, [Validators.required]),\r\n origen: new FormControl(this.fuenteServicioDTO?.origen),\r\n filtro: new FormControl(this.fuenteServicioDTO?.filtro),\r\n validador: new FormControl(this.fuenteServicioDTO?.validador),\r\n detenerServicio: new FormControl(this.fuenteServicioDTO?.detenerServicio, [Validators.required]),\r\n });\r\n this.cargandoFormulario = true\r\n }\r\n\r\n async cargarMapaServicios() {\r\n let map: Map<string, string> = new Map<string, string>();\r\n this.servicios.forEach(element => {\r\n map.set(element.codigo, element.descripcion);\r\n })\r\n this.mapaservicio = Array.from(map, ([key, label]) => ({ key, label }));\r\n }\r\n\r\n\r\n public ocultar() {\r\n this.regresar.emit();\r\n }\r\n\r\n async cargarCampos() {\r\n if (this.servicios == null || this.servicios.length <= 0 || this.fuenteServicioDTO.servicio == null || this.fuenteServicioDTO.servicio == '') {\r\n return\r\n }\r\n this.campos = null;\r\n this.campos = await this.fuenteService.cargarCampos(new ParametrosGeneralModel(null, null, this.servicios, { fuenteServicioDTO: this.fuenteServicioDTO })).toPromise();\r\n this.paginator.totalRecords = this.campos.length;\r\n }\r\n\r\n async guardar() {\r\n try {\r\n await this.validar();\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n await sleep(10);\r\n if (this.formulario.valid) {\r\n if (this.isNew) {\r\n this.fuenteServicioDTO = await this.generalService.crearRegistro(new GeneralModel('FuenteServicioDTO', null, false, this.formulario.value)).toPromise();\r\n await this.cargarFormulario()\r\n this.cargarCampos();\r\n this.isNew = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n return null;\r\n }\r\n if ((await this.generalService.update(new GeneralModel('FuenteServicioDTO', null, false, this.formulario.value)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n return null;\r\n }\r\n await this.guardarCampos();\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n let comodinValidador: boolean = false;\r\n Object.keys(this.formulario.controls).forEach((key) => {\r\n if (this.formulario.get(key).errors) {\r\n if (this.formulario.get(key).errors['errors']) {\r\n this.formulario.get(key).markAsDirty();\r\n comodinValidador = true;\r\n return;\r\n }\r\n this.formulario.get(key).markAsDirty();\r\n }\r\n\r\n });\r\n if (comodinValidador == false) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n }\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n this.notificacionesBusService.showError('error', error);\r\n }\r\n }\r\n\r\n eliminar(event) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: 'Si',\r\n accept: () => {\r\n this.setEliminar();\r\n },\r\n reject: () => {\r\n }\r\n });\r\n }\r\n\r\n async setEliminar() {\r\n try {\r\n if ((await this.fuenteService.eliminarServicio(new ParametrosGeneralModel(null, null, null, { fuenteServicioDTO: this.fuenteServicioDTO })).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n }\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.ocultar();\r\n } catch (error) {\r\n this.notificacionesBusService.showError(error.message);\r\n }\r\n }\r\n\r\n async validar() {\r\n\r\n let err: ValidationErrors = { 'errors': true };\r\n this.formulario.get('filtro').setErrors(null);\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n let validador = true;\r\n if (this.formulario.get('filtro').value == null || this.formulario.get('filtro').value == '') {\r\n this.formulario.get('filtro').setValue(null);\r\n }\r\n if ((this.formulario.get('filtro').value != null) && (this.formulario.get('filtro').value.length > 0)) {\r\n if (this.fuenteGeneral.motor != this.generalPipe.SI) {\r\n if (this.formulario.get('filtro').value.includes('?') || this.formulario.get('filtro').value.includes(':')) {\r\n this.notificacionesBusService.showWarning(this.fuentePipe.MENSAJE_SERVICIO_FORMULA_FILTRO_NO_VALIDA);\r\n this.formulario.get('filtro').setErrors(err);\r\n validador = false;\r\n return validador;\r\n }\r\n try {\r\n await sleep(1000);\r\n let validarcondicion = await this.fuenteService.validarCondicion(new ParametrosGeneralModel(null, null, null, { filtro: this.formulario.get('filtro').value })).toPromise();\r\n if (!validarcondicion) {\r\n validador = false;\r\n this.formulario.get('filtro').setErrors(err);\r\n }\r\n } catch (error) {\r\n validador = false;\r\n this.formulario.get('filtro').setErrors(err);\r\n this.notificacionesBusService.showError(error.error);\r\n return validador;\r\n }\r\n }\r\n }\r\n if (this.serviciosValidar == null || this.serviciosValidar.length <= 0) {\r\n return validador;\r\n }\r\n let valicontador = true\r\n this.serviciosValidar.forEach(element => {\r\n if (this.formulario.get('llaveTabla').value != element.llaveTabla) {\r\n if (this.formulario.get('orden').value == element.orden) {\r\n valicontador = false;\r\n }\r\n }\r\n });\r\n if (!valicontador) {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ORDEN_REPETIDO);\r\n validador = false;\r\n this.formulario.get('orden').setErrors(err);\r\n }\r\n return validador;\r\n }\r\n\r\n\r\n async validarCampos() {\r\n let validar = true;\r\n let obligatorios = false;\r\n this.campos.forEach(async element => {\r\n element.error = null;\r\n if (element.campo.valorDefecto != null && element.campo.valorDefecto.length > 0) {\r\n try {\r\n validar = await this.fuenteService.validarFormulaFuente(new ParametrosGeneralModel(null, null, null, { valorDefecto: element.campo.valorDefecto })).toPromise();\r\n } catch (error) {\r\n element.error = error.error;\r\n validar = false;\r\n }\r\n } else if (element.campo.obligatorio) {\r\n element.error = this.fuentePipe.MENSAJE_OBLIGATORIO;\r\n obligatorios = true;\r\n validar = false;\r\n }\r\n });\r\n if (obligatorios) {\r\n this.notificacionesBusService.showWarning('Apartado de Campos tiene campos obligatorios.');\r\n } else if (!validar) {\r\n this.notificacionesBusService.showInfo(this.fuentePipe.MENSAJE_EXISTEN_ERRORES_FORMULA);\r\n return false;\r\n }\r\n return validar;\r\n }\r\n\r\n async guardarCampos() {\r\n try {\r\n let validador = await this.validarCampos();\r\n if (validador) {\r\n this.fuenteService.guardarCampos(new ParametrosGeneralModel(null, null, this.campos, { fuenteServicioDTO: this.formulario.value })).toPromise();\r\n // await this.cargarCampos();\r\n }\r\n } catch (error) {\r\n this.notificacionesBusService.showError(error.message);\r\n }\r\n }\r\n\r\n transform(value: any, ...args: any): any {\r\n let result = value;\r\n if (args[0] == 'mapaServicio') { this.mapaservicio.forEach(data => { if (data.key === value) { result = data.label } }); }\r\n return result;\r\n }\r\n\r\n}\r\n\r\n","<p-confirmPopup></p-confirmPopup>\r\n<div *ngIf=\"cargar\">\r\n<div class=\"flex justify-content-between align-items-center mb-3\">\r\n <h1>{{ 'servicio'| translate}} {{ 'fuente'| translate}}</h1>\r\n <button pButton pRipple (click)=\"ocultar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\r\n class=\"p-button-text font-semibold\"></button>\r\n</div>\r\n <div class=\"card\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'basica' | translate}}</h5>\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"Inputgroup m-0 mb-3\">\r\n <form [formGroup]=\"formulario\">\r\n <div class=\"p-fluid grid\">\r\n\r\n <div class=\"field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"mapaservicio\" [autoDisplayFirst]=\"false\" optionValue=\"key\"\r\n optionLabel=\"label\" [showClear]=\"true\" formControlName=\"servicio\"\r\n [disabled]=\"!isNew\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'servicio' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-8 md:col-8 lg:col-8\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus formControlName=\"descripcion\" type=\"text\" />\r\n <label for=\"descripcion\">{{'descripcion' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus type=\"text\" maxlength=\"3\"\r\n formControlName=\"orden\" (input)=\"utilsService.validarCampoNumerico($event)\"\r\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' />\r\n <label for=\"descripcion\">{{'orden' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"fuentePipe.LISTA_MOMENTOS\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"true\"\r\n formControlName=\"origen\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'momento' |\r\n translate}}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"generalPipe.LISTA_SINO\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\"\r\n formControlName=\"detenerServicio\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'detenerservicio' |\r\n translate}} *</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-6 md:col-6 lg:col-6\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea autofocus\r\n formControlName=\"filtro\" [autoResize]=\"true\"> </textarea>\r\n <label for=\"descripcion\">{{'condiciones' |\r\n translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-6 md:col-6 lg:col-6\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea autofocus\r\n [autoResize]=\"true\" formControlName=\"validador\"> </textarea>\r\n <label for=\"descripcion\">{{'validador' |\r\n translate}}</label>\r\n </span>\r\n </div>\r\n\r\n </div>\r\n \r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n <p-accordion *ngIf=\"cargandoFormulario\">\r\n <p-accordionTab *ngIf=\"!isNew\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'campos' | translate}}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <!-- <div class=\"flex justify-content-end align-content-center mb-3 mt-2\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardarCampos()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\"></button>\r\n </div> -->\r\n <p-table [value]=\"campos\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\"\r\n [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 15]\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-6rem\">{{'atributo' | translate}}</th>\r\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\r\n <th class=\"w-6rem\">{{'homologacion' | translate}}</th>\r\n <th class=\"w-6rem\">{{'formula' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr>\r\n <td class=\"w-6rem\">\r\n {{element.campo.atributo}} {{element.campo.obligatorio ? '*': ''}}\r\n {{element.error}}\r\n </td>\r\n <td class=\"w-6rem\">\r\n {{element.campo.descripcion}}\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-dropdown [options]=\"homologaciones\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"label\" class=\"w-full\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [(ngModel)]=\"element.campo.homologacion\"></p-dropdown>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"1\" cols=\"5\" pInputTextarea \r\n [(ngModel)]=\"element.campo.valorDefecto\" autofocus [autoResize]=\"true\"> </textarea>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <p class=\"p-3 font-medium emptymessage\">\r\n {{'mensajetablavacia' | translate}}\r\n </p>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n </p-accordionTab>\r\n</p-accordion>\r\n<div class=\"flex justify-content-end align-content-center mt-3\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" *ngIf=\"!isNew\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" *ngIf=\"isNew\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" (click)=\"eliminar($event)\"\r\n icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\" *ngIf=\"!isNew\"></button>\r\n</div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MenuService } from '../../../../core/servicios/menu.service'\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n@Component({\r\n imports: [TranslateModule, CommonModule, FiltroGeneralComponent, TablaGeneralComponent, ButtonModule, ReactiveFormsModule,InputTextModule,],\r\n standalone: true,\r\n templateUrl: './listado-fuente-general.page.html',\r\n providers:[ConfirmationService],\r\n styleUrls: ['./listado-fuente-general.page.scss']\r\n})\r\nexport class ListadoFuenteGeneralPage implements OnInit {\r\n\r\n columns : any[] = [];\r\n filters : any[] = [];\r\n loading: boolean;\r\n listaResultado: FuenteGeneralModel[] = [];\r\n paginator = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n constructor(private generalServices : GeneralService,\r\n private authService: AuthService,\r\n private translateService : TranslateService, \r\n private router: Router, public utilsService: UtilsService, \r\n private activatedRoute: ActivatedRoute,\r\n private menuService: MenuService) { }\r\n\r\n ngOnInit(): void {\r\n this.menuService.setBreadcrumb([{ label: 'Fuente General' }]);\r\n this.columns = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n width: 100,\r\n },\r\n ];\r\n this.filters = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }\r\n ];\r\n }\r\n\r\n\r\n cargarlistado(event){\r\n this.loading = true\r\n this.listaResultado = []\r\n let objeto = {\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows,\r\n fuenteGeneral: 'S',\r\n aplicacion: this.authService.getTokenKey('aplicacion').padEnd(10),\r\n descripcion: event.filters?.descripcion?.value ? '%' + event.filters?.descripcion?.value + '%' : null\r\n }\r\n let general = new GeneralModel('FuenteGeneralDTO', null, false, objeto)\r\n console.log(objeto)\r\n this.generalServices.queryForList(general).subscribe(data => {\r\n this.listaResultado = data;\r\n this.generalServices.cantidadRegistros(general).subscribe(data => {\r\n this.paginator.totalRecords = data;\r\n this.loading = false;\r\n })\r\n });\r\n }\r\n\r\n seleccion(evento){\r\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/',evento.llaveTabla]);\r\n }\r\n nuevo(){\r\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/']);\r\n }\r\n\r\n}\r\n","<h1>{{ 'fuente'| translate}}</h1>\r\n<div class=\"flex justify-content-between align-items-center mb-3\">\r\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\r\n autocomplete=\"off\" />\r\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n</div>\r\n<app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"listaResultado\" [rows]=\"paginator.rows\"\r\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"cargarlistado($event)\" (onRowSelect)=\"seleccion($event)\"\r\n [loading]=\"loading\"></app-tabla-general>","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class RecursoPuntoModel extends UnionModel {\r\n puntoProceso: string;\r\n puntoProcesoDescripcion: string;\r\n tipo: string;\r\n fuente: string;\r\n fuenteDescripcion: string;\r\n reporteFuente: string;\r\n reporteFuenteDescripcion: string;\r\n rolUsuario: string;\r\n filtro: string;\r\n} ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GeneralPipe } from '../../pipes/general.pipe';\r\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport {AtributoPuntoModel} from '../../../seguridad/modelos/AtributoPuntoModel';\r\nimport {CruceRecursoPuntoModel} from '../../../seguridad/modelos/CruceRecursoPuntoModel';\r\nimport {PuntoProcesoModel} from '../../../seguridad/modelos/PuntoProcesoModel';\r\nimport {RecursoPuntoModel} from '../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\n\r\n@Component({\r\n selector: 'app-popup-recurso',\r\n imports: [TranslateModule, CommonModule, DialogModule, ConfirmPopupModule, DropdownModule, ButtonModule, AccordionModule, FormsModule, TableModule, InputTextareaModule],\r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './popup-recurso.component.html',\r\n styleUrls: ['./popup-recurso.component.scss']\r\n})\r\nexport class PopupRecursoComponent implements OnInit {\r\n\r\n @Output() public regresar = new EventEmitter();\r\n\r\n recursoPuntoDTO: RecursoPuntoModel = new RecursoPuntoModel;\r\n llave: any;\r\n destino: String;\r\n tipoRecurso;\r\n nuevo: boolean;\r\n mostrarPopup: boolean;\r\n recursosValidar: RecursoPuntoModel[] = [];\r\n cruces: CruceRecursoPuntoModel[] = [];\r\n listaEntrada: any[] = [];\r\n listaPuntosProceso: any[] = [];\r\n listaAtributoPunto: AtributoPuntoModel[] = [];\r\n listadoAtributoPunto: any[] = [];\r\n listaCruce: CruceRecursoPuntoModel[] = [];\r\n cruceRecursoPunto: CruceRecursoPuntoModel = new CruceRecursoPuntoModel();\r\n vistaVisualizar: String;\r\n paginatorCruce = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n\r\n \r\n\r\n\r\n\r\n constructor(private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private notificacionBusService: ToastService, private generalPipe: GeneralPipe,\r\n public utilsService: UtilsService,private notificacionesBusService: ToastService,private confirmationService: ConfirmationService) { }\r\n\r\n ngOnInit(): void {\r\n this.cargarListas();\r\n }\r\n\r\n async cargarListas() {\r\n this.listaPuntosProceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('PuntoProcesoDTO', null, false, new PuntoProcesoModel));\r\n }\r\n\r\n async loadCruce() {\r\n this.listaCruce = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {recursoPunto: this.recursoPuntoDTO.llaveTabla})).toPromise();\r\n }\r\n\r\n\r\n\r\n async ver(recursoPuntoDTO: RecursoPuntoModel, llave: any, nuevo: boolean, tipoRecurso) {\r\n await this.ngOnInit();\r\n this.mostrarPopup = true;\r\n this.llave = llave;\r\n this.tipoRecurso = tipoRecurso;\r\n this.nuevo = nuevo;\r\n this.recursoPuntoDTO = recursoPuntoDTO;\r\n this.cargarRecursoPunto();\r\n this.cargarEntradas();\r\n if (!this.nuevo) {\r\n this.loadCruce();\r\n this.cargarAtributos(recursoPuntoDTO.puntoProceso);\r\n }\r\n }\r\n\r\n eliminar(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel:'Si',\r\n accept: () => {\r\n this.setRespuesta();\r\n },\r\n reject: () => {\r\n }\r\n });\r\n }\r\n\r\n async setRespuesta(){\r\n if(this.validarEliminacion()){\r\n await this.generalService.delete(new GeneralModel('RecursoPuntoDTO',null, false, {llaveTabla: this.recursoPuntoDTO.llaveTabla})).toPromise();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.ocultar();\r\n return\r\n }else {\r\n this.notificacionesBusService.showWarning('Debe eliminar los cruces primero');\r\n }\r\n }\r\n async validarEliminacion(){\r\n let validador = await this.generalService.cantidadRegistros(new GeneralModel('CruceRecursoPuntoDTO', null, false,{puntoProceso: this.recursoPuntoDTO.puntoProceso , reporteFuente: this.recursoPuntoDTO.reporteFuente})).toPromise();\r\n return true ? validador == 0 : false;\r\n }\r\n\r\n async cargarRecursoPunto() {\r\n let verificar: RecursoPuntoModel = new RecursoPuntoModel();\r\n if (this.tipoRecurso == 'F') {\r\n verificar.fuente = this.llave;\r\n } else if (this.tipoRecurso == 'R') {\r\n verificar.reporteFuente = this.llave;\r\n }\r\n this.recursosValidar = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, verificar)).toPromise();\r\n }\r\n\r\n async cargarEntradas() {\r\n if (this.tipoRecurso == 'F') {\r\n this.listaEntrada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('FuenteEntradaDTO', null, false, { fuente: this.llave }))\r\n } else if (this.tipoRecurso == 'R') {\r\n this.listaEntrada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('FuenteEntradaDTO', null, false, { reporteFuente: this.llave }))\r\n }\r\n }\r\n\r\n async cargarCruce() {\r\n if (this.recursoPuntoDTO.llaveTabla == null) {\r\n return;\r\n }\r\n this.cruces = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', true, { recursoPunto: this.recursoPuntoDTO.llaveTabla })).toPromise();\r\n }\r\n\r\n async cargarAtributos(puntoProceso) {\r\n this.listadoAtributoPunto = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso }));\r\n this.listaAtributoPunto = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso })).toPromise();\r\n }\r\n\r\n async guardar() {\r\n if (this.validar()) {\r\n if (this.nuevo) {\r\n if (this.tipoRecurso == 'F') {\r\n this.recursoPuntoDTO.fuente = this.llave;\r\n } else if (this.tipoRecurso == 'R') {\r\n this.recursoPuntoDTO.reporteFuente = this.llave;\r\n }\r\n this.recursoPuntoDTO.tipo = this.tipoRecurso;\r\n this.recursoPuntoDTO = await this.generalService.crearRegistro(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\r\n this.nuevo = false;\r\n return null\r\n }\r\n this.recursoPuntoDTO.tipo = this.tipoRecurso\r\n if ((await this.generalService.update(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise()) <= 0) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n return null;\r\n }\r\n this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n }\r\n return null;\r\n }\r\n\r\n nuevoCruce() {\r\n this.vistaVisualizar = 'nuevoCruce'\r\n }\r\n cancelarCruce() {\r\n this.vistaVisualizar = null;\r\n }\r\n\r\n async agregarCruce(cruce?, nuevo?) {\r\n if (nuevo) {\r\n if (!this.validarCruce()) {\r\n return;\r\n }\r\n this.cruceRecursoPunto.recursoPunto = this.recursoPuntoDTO.llaveTabla;\r\n this.cruceRecursoPunto = await this.generalService.crearRegistro(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise();\r\n //this.listaCruce.push(this.cruceRecursoPunto);\r\n await this.cargarCruce();\r\n await this.loadCruce();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n this.vistaVisualizar = null;\r\n this.cruceRecursoPunto = new CruceRecursoPuntoModel();\r\n return null;\r\n } else {\r\n this.cruceRecursoPunto = cruce\r\n if ((await this.generalService.update(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise()) <= 0) {\r\n this.notificacionBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n }\r\n this.notificacionBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n return null;\r\n }\r\n }\r\n \r\n eliminarCruce(event, cruce){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: 'Si',\r\n accept: () => {\r\n this.setEliminarCruce(cruce);\r\n },\r\n reject: () => {\r\n this.notificacionesBusService.showInfo('No se elimino el registro');\r\n }\r\n });\r\n }\r\n async setEliminarCruce(cruce){\r\n if ((await this.generalService.delete(new GeneralModel('CruceRecursoPuntoDTO', null, false, cruce)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n return\r\n }\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.loadCruce();\r\n }\r\n\r\n validar() {\r\n let validar = true;\r\n if (this.recursosValidar == null || this.recursosValidar.length <= 0) {\r\n return validar;\r\n }\r\n this.recursosValidar.forEach(element => {\r\n if ((element.llaveTabla != this.recursoPuntoDTO.llaveTabla) && element.puntoProceso == this.recursoPuntoDTO.puntoProceso) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PUNTO_PROCESO_REPETIDO);\r\n validar = false\r\n }\r\n });\r\n return validar;\r\n }\r\n validarCruce() {\r\n if(this.tipoRecurso == null){\r\n this.notificacionBusService.showError('No se encuentra el recurso');\r\n return false\r\n }\r\n this.cruces.forEach(async element => {\r\n if (this.tipoRecurso == 'F' && element.fuenteEntrada == this.cruceRecursoPunto.fuenteEntrada) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\r\n return false;\r\n } else {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\r\n return false;\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n\r\n\r\n public ocultar() {\r\n this.mostrarPopup = false;\r\n this.regresar.emit();\r\n }\r\n\r\n}\r\n","<p-confirmPopup></p-confirmPopup>\r\n<p-dialog id='popupReImprimirRegresion' header=\"{{'recurso' | translate}}\" [(visible)]=\"mostrarPopup\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\r\n <p-accordion class=\"w-full\">\r\n <p-accordionTab [selected]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'punto' | translate }} {{'proceso' | translate }}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <p-dropdown [options]=\"listaPuntosProceso\" [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"recursoPuntoDTO.puntoProceso\">\r\n </p-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end align-items-center mt-3\">\r\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\"\r\n class=\"p-element p-ripple ml-2 p-button-raised p-button p-component\" type=\"button\" (click)=\"guardar()\"\r\n *ngIf=\"nuevo\"><span class=\"glyphicons glyphicons-floppy-save\"\r\n style=\"width: auto;\"></span></button>\r\n <button pButton pRipple label=\"{{'link_actualizar' | translate }}\"\r\n class=\"ml-2 p-button-raised\" *ngIf=\"!nuevo\" type=\"button\"\r\n (click)=\"guardar()\"><span class=\"glyphicons glyphicons-refresh\"\r\n style=\"width: auto;\"></span></button>\r\n <button pButton label=\"{{'link_eliminar' | translate }}\"\r\n class=\"p-button-outlined ml-2 mr-2p-element p-button p-component eliminar\" type=\"button\"\r\n *ngIf=\"!nuevo\" (click)=\"eliminar($event)\"><span class=\"glyphicons glyphicons-bin\"\r\n style=\"width: auto;\"></span></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"!nuevo\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'cruce' | translate }}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCruce()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"listaCruce\" [scrollable]=\"true\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\r\n editMode=\"row\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 40%;\">{{'entrada' | translate}}</th>\r\n <th style=\"width: 40%;\">{{'valor' | translate}}</th>\r\n <th style=\"width: 10%;\"> </th>\r\n </tr>\r\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevoCruce'\">\r\n <td style=\"width: 40%;\">\r\n <p-dropdown class=\"w-full\" [options]=\"listaEntrada\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\r\n [(ngModel)]=\"cruceRecursoPunto.fuenteEntrada\"></p-dropdown>\r\n </td>\r\n <td style=\"width: 40%;\">\r\n <p-dropdown class=\"w-full\" [options]=\"listadoAtributoPunto\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\"\r\n [(ngModel)]=\"cruceRecursoPunto.atributoPunto\" class=\"w-full\"></p-dropdown>\r\n </td>\r\n <td style=\"width: 10%;\" >\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCruce(null,true)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"cancelarCruce()\" icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-cruce let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"cruce\">\r\n <td style=\"width: 40%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\r\n [(ngModel)]=\"cruce.reporteEntrada\"></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{cruce.descripcionEntrada}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 40%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\r\n [(ngModel)]=\"cruce.atributoPunto\"></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{cruce.atributoPuntoDescripcion}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <div class=\"flex align-items-center justify-content-end gap-2\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarCruce(cruce, false)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarCruce($event,cruce)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"!nuevo\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'filtro' | translate }}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n\r\n <p-table [value]=\"listaAtributoPunto\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" >\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 50%;\">{{'descripcion' | translate}}</th>\r\n <th style=\"width: 50%;\">{{'codigo' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr>\r\n <td style=\"width: 50%;\">\r\n {{element.descripcion}}\r\n </td>\r\n <td style=\"width: 50%;\">\r\n {{element.codigo}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <label class=\"font-medium w-full\" for=\"descripcion\">{{'filtro' | translate}}\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\r\n [(ngModel)]=\"recursoPuntoDTO.filtro\" autofocus [autoResize]=\"true\"> </textarea></label>\r\n </div>\r\n <div class=\"flex justify-content-end align-content-center mt-3\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" ></button>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n </p-accordion>\r\n</p-dialog>\r\n","import { HttpClient, HttpErrorResponse, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlantillasService {\r\n \r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cookieService: CookieService) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n obtenerArchivos(propiedad, aplicativo, extensiones?, anexoPropiedad?, seleccionarPadre?): Observable<any> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"propiedad\", propiedad);\r\n formData.append(\"aplicativo\", aplicativo);\r\n formData.append(\"extensiones\", extensiones);\r\n formData.append(\"anexoPropiedad\", anexoPropiedad);\r\n formData.append(\"seleccionarPadre\", seleccionarPadre);\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/obtenerArchivos`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n crearCarpeta(ruta: string, rutaHija: string, nombreCarpeta: string): Observable<any> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"ruta\", ruta);\r\n formData.append(\"rutaHija\", rutaHija);\r\n formData.append(\"nombreCarpeta\", nombreCarpeta);\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/crearCarpeta`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n eliminarCarpeta(ruta: string, rutaHija: string) {\r\n\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"ruta\", ruta);\r\n formData.append(\"rutaHija\", rutaHija);\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/eliminarCarpeta`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cargarDocumentoTemporal(archivoSeleccionadoAnexo: File) {\r\n\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"archivo\", archivoSeleccionadoAnexo);\r\n\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/cargarDocumentoTemporal`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n existeDocumento(ruta: string, rutaHija: string, informacionArchivo: any) {\r\n\r\n let parametrosArchivo = { ...informacionArchivo };\r\n\r\n let url = this.cookieService.get('urlnucleo');\r\n let formData = new FormData();\r\n formData.append(\"ruta\", ruta);\r\n formData.append(\"rutaHija\", rutaHija);\r\n formData.append(\"file\", String(parametrosArchivo.file));\r\n parametrosArchivo.file = null;\r\n formData.append(\"informacionArchivo\", JSON.stringify(parametrosArchivo));\r\n\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/existeDocumento`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cargarDocumento(ruta: string, rutaHija: string, informacionArchivo: any) {\r\n\r\n let parametrosArchivo = { ...informacionArchivo };\r\n\r\n let url = this.cookieService.get('urlnucleo');\r\n let formData = new FormData();\r\n formData.append(\"ruta\", ruta);\r\n formData.append(\"rutaHija\", rutaHija);\r\n formData.append(\"file\", String(parametrosArchivo.file));\r\n parametrosArchivo.file = null;\r\n formData.append(\"informacionArchivo\", JSON.stringify(parametrosArchivo));\r\n\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/cargarDocumento`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n consultarListadoPlanillasAConvertir(rutaPlantilla: string, filtro: string): Observable<any[]> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"rutaPlantilla\", rutaPlantilla);\r\n formData.append(\"filtro\", filtro);\r\n\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/consultarlistadoplanillasaconvertir`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n convertirArchivo(listaSeleccionados: any[]): Observable<unknown> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"listaSeleccionados\", JSON.stringify(listaSeleccionados));\r\n\r\n return this.httpClient.post<any>(`${url}/requieretoken/plantillas/convertirArchivo`, formData).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n consultarArchivoHtml(rutaPrincipal: string, rutaHija: any): Observable<string> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"rutaPrincipal\", rutaPrincipal);\r\n formData.append(\"rutaHija\", rutaHija);\r\n\r\n return this.httpClient.post<string>(`${url}/requieretoken/plantillas/consultarArchivoHtml`, formData, {\r\n responseType: 'text' as 'json'\r\n }).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n guardarArchivoHtml(rutaPrincipal: string, rutaHija: any, modificarHTML: string): Observable<unknown> {\r\n let url = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"rutaPrincipal\", rutaPrincipal);\r\n formData.append(\"rutaHija\", rutaHija);\r\n formData.append(\"modificarHTML\", modificarHTML);\r\n\r\n return this.httpClient.post<string>(`${url}/requieretoken/plantillas/guardarArchivoHtml`, formData, {\r\n responseType: 'text' as 'json'\r\n }).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { GeneralPipe } from '../../../webcommon/pipes/general.pipe';\r\nimport { PlantillasService } from '../../../webcommon/services/plantillas.service';\r\nimport { TreeNode } from 'primeng/api';\r\n\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { TreeModule, TreeNodeSelectEvent } from 'primeng/tree';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n selector: 'app-input-helper-seleccion-plantilla',\r\n imports: [TranslateModule, CommonModule, DialogModule, TreeModule, InputTextModule, ButtonModule],\r\n standalone: true,\r\n templateUrl: './input-helper-seleccion-plantilla.component.html',\r\n styleUrls: ['./input-helper-seleccion-plantilla.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputHelperSeleccionPlantillaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputHelperSeleccionPlantillaComponent implements OnInit, ControlValueAccessor {\r\n\r\n @ViewChild('inputText') inputText: ElementRef;\r\n\r\n @Input() value: string | number;\r\n\r\n @Input() label: string = '';\r\n\r\n @Input() labelrar: string;\r\n\r\n @Input() labelarch: string;\r\n\r\n @Input() extensiones: string = null;\r\n\r\n @Input() readonly: boolean = false;\r\n\r\n @Input() propiedad: string = null;\r\n\r\n @Input() anexoPropiedad: string = '';\r\n\r\n @Output() onSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() showDialog: boolean = false;\r\n\r\n @Input() propiedadDeSistema: boolean = false;\r\n\r\n @Input() mostraroblicargo: boolean ;\r\n\r\n @Input() mostrarX: boolean;\r\n\r\n @Input() booleano: boolean;\r\n\r\n @Input() mostrarLabelInput: boolean = true;\r\n\r\n listaVinculacion: any[];\r\n\r\n onChange: Function = () => { };\r\n\r\n onTouched: Function = () => { };\r\n\r\n files: TreeNode[];\r\n\r\n dataSelected: TreeNode;\r\n\r\n loading: boolean;\r\n\r\n labelprin: string;\r\n\r\n labelar: string;\r\n\r\n\r\n\r\n constructor(private plantillasService: PlantillasService,\r\n private authService: AuthService,\r\n private generalpipe: GeneralPipe) {}\r\n\r\n ngOnInit(): void {\r\n this.labelrar = this.labelrar ? this.labelrar : 'Recursos';\r\n this.labelarch = this.labelarch ? this.labelarch : 'Recursos';\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void { }\r\n\r\n openDataTable() {\r\n this.showDialog = true;\r\n if (this.booleano == null) {\r\n this.booleano = false;\r\n }\r\n setTimeout(() => {\r\n this.loading = true;\r\n\r\n if (!this.propiedad) {\r\n this.propiedad = 'ruta_plantillas'\r\n }\r\n this.plantillasService.obtenerArchivos(this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), this.extensiones, this.anexoPropiedad, false).subscribe(rta => {\r\n this.files = rta;\r\n console.log(this.files)\r\n this.loading = false;\r\n })\r\n }, 1000);\r\n }\r\n\r\n deleteSelection() {\r\n this.value = null;\r\n this.label = null;\r\n this.onChange(this.value)\r\n this.onSelected.emit({});\r\n }\r\n\r\n seleccionarArchivo(event) {\r\n console.log('seleccionararchivo')\r\n console.log(event)\r\n this.dataSelected = event.node;\r\n this.showDialog = false;\r\n this.value = this.dataSelected.data;\r\n this.label = this.dataSelected.label;\r\n this.onChange(this.value);\r\n //this.dataSelected.valorPopup = this.value;\r\n //this.dataSelected.descripcionPopup = this.label;\r\n this.onSelected.emit(this.dataSelected);\r\n this.booleano = false;\r\n }\r\n\r\n}\r\n","<div *ngIf=\"mostraroblicargo\" #field [class]=\"booleano ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\r\n <span class=\"p-float-label\">\r\n <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" disabled [required]=\"booleano\"/>\r\n <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\r\n class=\"p-button-icon-only clear unico\" >\r\n <span class=\"glyphicons glyphicons-new-window-alt\"></span>\r\n </button>\r\n <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\r\n (click)=\"deleteSelection()\">\r\n <span class=\"pi pi-times\"></span>\r\n </button>\r\n <label *ngIf=\"!booleano && mostrarLabelInput\"><span>{{labelrar| translate}} </span></label>\r\n <label *ngIf=\"booleano && mostrarLabelInput\">{{labelrar| translate}} *</label>\r\n </span>\r\n</div>\r\n\r\n\r\n\r\n<!-- <div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched\"> -->\r\n<div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched\">\r\n\r\n\r\n <span class=\"p-float-label\">\r\n <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" required disabled />\r\n <!-- <label htmlFor=\"recursos\">{{labelrar | translate}}</label> -->\r\n\r\n <button style=\"border-radius: 0px;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\r\n class=\"p-button-icon-only\">\r\n <span class=\"glyphicons glyphicons-new-window-alt\"></span>\r\n </button>\r\n <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\r\n (click)=\"deleteSelection()\">\r\n <span class=\"glyphicons glyphicons-remove\"></span>\r\n </button>\r\n <label *ngIf=\"mostrarLabelInput\" for=\"recursos\">{{labelrar| translate}} *</label>\r\n </span>\r\n</div>\r\n\r\n<p-dialog id='popupSeleccionPlantilla' header=\"{{labelarch | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\"\r\n (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '40vw'}\"\r\n [modal]=\"true\">\r\n\r\n <p-tree scrollHeight=\"500px\" [value]=\"files\" selectionMode=\"single\"\r\n [filter]=\"true\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\r\n (onNodeSelect)=\"seleccionarArchivo($event)\" (onNodeUnselect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"></p-tree>\r\n\r\n</p-dialog>\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { FuentePipe } from '../../pipes/fuente.pipe';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { AbstractControl, AsyncValidatorFn, FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\r\nimport { Observable, of } from 'rxjs';\r\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { FuenteCampoModel } from '../../../seguridad/modelos/FuenteCampoModel';\r\nimport { GeneralPipe } from '../../pipes/general.pipe';\r\nimport { FuenteGeneralModel } from '../../../seguridad/modelos/FuenteGeneralModel';\r\nimport {GeneralModel} from '../../../seguridad/modelos/GeneralModel';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { TableModule } from 'primeng/table';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n selector: 'app-popup-campos-fuente-general',\r\n imports: [ButtonModule,TranslateModule, CommonModule, DialogModule, ReactiveFormsModule, DropdownModule,TranslateModule,InputTextModule, CommonModule, ReactiveFormsModule, DropdownModule, ConfirmPopupModule, InputTextareaModule, AccordionModule, TableModule, FormsModule, FiltroGeneralComponent, TablaGeneralComponent,],\r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './popup-campos-fuente-general.component.html',\r\n styleUrls: ['./popup-campos-fuente-general.component.scss']\r\n})\r\nexport class PopupCamposFuenteGeneralComponent implements OnInit {\r\n @Input()\r\n mostrar: boolean;\r\n @Input()\r\n campo: FuenteCampoModel;\r\n @Input()\r\n fuenteDTO: FuenteGeneralModel;\r\n @Output()\r\n regresar = new EventEmitter();\r\n @Output()\r\n regresarNuevo = new EventEmitter();\r\n\r\n\r\n \r\n isNew: boolean = true;\r\n homologaciones;\r\n fuenteCampoDTO: FuenteCampoModel = new FuenteCampoModel()\r\n cargando: boolean;\r\n\r\n formulario: FormGroup;\r\n\r\n /* BOOLEANOS */\r\n public formato: boolean = false;\r\n public formatoNumero: boolean = false;\r\n public serviciosMotor: boolean = false;\r\n public unicoRegistro: boolean = false;\r\n public agrupamiento: boolean = false;\r\n public rompimiento: boolean = false;\r\n public mostrarHoja: boolean = false;\r\n public sinSeparador: boolean = false;\r\n public conSeparador: boolean = false;\r\n public servicioWeb: boolean = false;\r\n public nuevoRCampo: boolean = false;\r\n public homologacion: boolean = false;\r\n mensaje: string;\r\n\r\n constructor(public fuentePipe: FuentePipe, public generalPipe: GeneralPipe, private cargarmapasGlobal: cargarmapasGlobal, private notificacionesBusService: ToastService, private generalService: GeneralService,\r\n private us: UtilsService, private confirmationService: ConfirmationService, private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.cargar();\r\n }\r\n\r\n async cargar() {\r\n if (this.campo.llaveTabla != null) {\r\n this.isNew = false;\r\n this.fuenteCampoDTO = this.campo;\r\n }\r\n await this.cargaBooleanos();\r\n if (this.homologacion) {\r\n this.homologaciones = await this.cargarmapasGlobal.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\r\n }\r\n this.formulario = this.formBuilder.group({\r\n llaveTabla: new FormControl((this.fuenteCampoDTO?.llaveTabla) ? this.fuenteCampoDTO?.llaveTabla : this.us.generarLlave()),\r\n fuente: new FormControl(this.fuenteCampoDTO.fuente ? this.fuenteCampoDTO.fuente : this.fuenteDTO.llaveTabla),\r\n origen: new FormControl(this.fuenteCampoDTO.origen ? this.fuenteCampoDTO.origen : 'C'),\r\n descripcion: new FormControl(this.fuenteCampoDTO.descripcion, [Validators.required]),\r\n tipoDato: new FormControl(this.fuenteCampoDTO?.tipoDato, [Validators.required]),\r\n tipoInformacion: new FormControl(this.fuenteCampoDTO.tipoInformacion),\r\n columna: new FormControl(this.fuenteCampoDTO?.columna),\r\n posicionInicial: new FormControl(this.fuenteCampoDTO.posicionInicial, ),\r\n posicionFinal: new FormControl(this.fuenteCampoDTO.posicionFinal),\r\n formato: new FormControl(this.fuenteCampoDTO.formato,),\r\n homologacion: new FormControl(this.fuenteCampoDTO.homologacion),\r\n });\r\n if (this.rompimiento || this.agrupamiento) {\r\n this.formulario.get('tipoInformacion').addValidators([Validators.required]);\r\n this.formulario.get('tipoInformacion').updateValueAndValidity()\r\n }\r\n if (this.conSeparador) {\r\n this.formulario.get('columna').addValidators([Validators.required]);\r\n this.formulario.get('columna').updateValueAndValidity()\r\n }\r\n this.cargando = true\r\n\r\n }\r\n\r\n async actionCambioTipo(event) {\r\n if (event.value == 'F') {\r\n this.formulario.get('formato').addValidators([Validators.required]);\r\n } else {\r\n this.formulario.get('formato').clearValidators();\r\n }\r\n if (this.formulario.get('tipoDato').value == this.fuentePipe.DECIMAL || this.formulario.get('tipoDato').value == this.fuentePipe.NUMERO || this.formulario.get('tipoDato').value == this.fuentePipe.TEXTO || this.formulario.get('tipoDato').value == this.fuentePipe.FECHA) {\r\n this.homologaciones = await this.cargarmapasGlobal.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('HomologacionGeneralDTO', null, false, { estado: this.generalPipe.ESTADO_ACTIVO }));\r\n } else {\r\n \r\n }\r\n this.formulario.get('formato').updateValueAndValidity()\r\n \r\n }\r\n\r\n async guardar() {\r\n try {\r\n console.log(this.formulario);\r\n let err: ValidationErrors = { 'mayorQue': true };\r\n this.formulario.get('posicionFinal').clearValidators();\r\n this.formulario.get('posicionFinal').updateValueAndValidity();\r\n if (this.formulario.valid ) {\r\n if(( (this.formulario.get('posicionFinal').value != null && this.formulario.get('posicionFinal').value != '') && (this.formulario.get('posicionInicial').value != null && this.formulario.get('posicionInicial').value != '')) && \r\n (this.formulario.get('posicionFinal').value <= this.formulario.get('posicionInicial').value)){\r\n this.mensaje = 'El valor no debe ser mayor a ' + this.formulario.get('posicionInicial').value\r\n this.formulario.get('posicionFinal').setErrors(err);\r\n this.validator();\r\n return\r\n }\r\n\r\n if (this.isNew) {\r\n let data = await this.generalService.crearRegistro(new GeneralModel('FuenteCampoDTO', null, false, this.formulario.getRawValue())).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n this.regresarNuevo.emit(data)\r\n await this.ocultar();\r\n return;\r\n }\r\n if ((await this.generalService.update(new GeneralModel('FuenteCampoDTO', null, false, this.formulario.getRawValue())).toPromise()) <= 0) {\r\n this.notificacionesBusService.showInfo('Registro NO Actualizado');\r\n return;\r\n }\r\n this.notificacionesBusService.showInfo('Registro Actualizado');\r\n this.ocultar();\r\n }\r\n else {\r\n this.validator();\r\n }\r\n } catch (error) {\r\n console.log(JSON.stringify(error));\r\n }\r\n }\r\n\r\n validator(){\r\n let comodinValidador: boolean = false;\r\n Object.keys(this.formulario.controls).forEach((key) => {\r\n if (this.formulario.get(key).errors) {\r\n if (this.formulario.get(key).errors['mayorQue']) {\r\n this.formulario.get(key).markAsDirty();\r\n comodinValidador = true;\r\n this.notificacionesBusService.showWarning(this.mensaje);\r\n return;\r\n }\r\n this.formulario.get(key).markAsDirty();\r\n }\r\n });\r\n if (comodinValidador == false) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n }\r\n }\r\n\r\n\r\n\r\n eliminar(event, cDelete: FuenteCampoModel) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel:'Si',\r\n accept: () => {\r\n this.setEliminar(cDelete);\r\n },\r\n reject: () => {\r\n\r\n }\r\n });\r\n }\r\n\r\n async setEliminar(cDelete: FuenteCampoModel) {\r\n if ((await this.generalService.delete(new GeneralModel('FuenteCampoDTO', null, false, cDelete)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n this.ocultar();\r\n return\r\n }\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.ocultar();\r\n }\r\n\r\n public ocultar() {\r\n this.mostrar = false;\r\n this.campo = new FuenteCampoModel();\r\n this.fuenteCampoDTO = new FuenteCampoModel();\r\n this.regresar.emit();\r\n }\r\n\r\n async cargaBooleanos() {\r\n this.agrupamiento = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.AGRUPAMIENTO;\r\n this.rompimiento = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.ROMPIMIENTO;\r\n this.unicoRegistro = this.fuenteDTO != null && this.fuenteDTO.tipo == this.fuentePipe.UNICO_REGISTRO ? true : false;\r\n this.mostrarHoja = this.unicoRegistro && this.fuenteDTO.excel == this.generalPipe.SI ? true : false;\r\n this.sinSeparador = this.fuenteDTO != null && this.fuenteDTO.separador == this.fuentePipe.SIN_SEPARADOR ? true : false;\r\n this.conSeparador = this.fuenteDTO != null && this.fuenteDTO.separador != null && this.fuenteDTO.separador != this.fuentePipe.SIN_SEPARADOR ? true : false;\r\n this.serviciosMotor = this.fuenteDTO.motor == this.generalPipe.SI ? true : false;\r\n this.formato = this.fuenteDTO != null && this.campo.tipoDato == this.fuentePipe.FECHA ? true : false;\r\n this.formatoNumero = this.fuenteDTO != null && this.campo.tipoDato == this.fuentePipe.NUMERO ? true : false;\r\n this.homologacion = this.fuenteDTO != null && (this.campo.tipoDato == this.fuentePipe.DECIMAL || this.campo.tipoDato == this.fuentePipe.NUMERO || this.campo.tipoDato == this.fuentePipe.TEXTO || this.campo.tipoDato == this.fuentePipe.FECHA) ? true : false;\r\n if (this.fuenteDTO == null || this.fuenteDTO.proceso == null) {\r\n this.servicioWeb = false;\r\n } if (this.fuenteDTO.proceso == this.fuentePipe.SERVICIO) {\r\n this.fuenteDTO.ejecucion = this.fuentePipe.SERVICIO_EJECUCION;\r\n this.fuenteDTO.tipo = this.fuentePipe.UNICO_REGISTRO;\r\n this.fuenteDTO.separador = this.fuentePipe.COMA;\r\n this.servicioWeb = true;\r\n }\r\n }\r\n\r\n noNulo(key): AsyncValidatorFn {\r\n return (control: AbstractControl): Observable<ValidationErrors> => {\r\n let bReturn: boolean = true;\r\n if (this.formulario?.controls[key].value == '') {\r\n bReturn = true;\r\n }\r\n let err: ValidationErrors = { 'nulo': true };\r\n return bReturn ? of(null) : of(err);\r\n };\r\n }\r\n\r\n\r\n mayorQue(key, keyCompara): AsyncValidatorFn {\r\n return (control: AbstractControl): Observable<ValidationErrors> => {\r\n let bReturn: boolean = true;\r\n console.log('entro');\r\n if (this.formulario?.controls[key].value < this.formulario?.controls[keyCompara].value) {\r\n this.mensaje = 'El valor no debe ser mayor a ' + this.formulario.controls[keyCompara].value\r\n console.log('entro mas');\r\n bReturn = false;\r\n }\r\n let err: ValidationErrors = { 'mayorQue': true };\r\n return bReturn ? of(null) : of(err);\r\n };\r\n }\r\n\r\n}\r\n","<p-dialog id='popupReImprimirRegresion' header=\"{{'campos' | translate}}\" [(visible)]=\"mostrar\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\r\n <div *ngIf=\"cargando\">\r\n <form [formGroup]=\"formulario\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-3 md:col-3 lg:col-12\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"descripcion\" required/>\r\n <label for=\"descripcion\">{{'descripcion' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_DATO\" appendTo=\"body\" [autoZIndex]=\"false\" formControlName=\"tipoDato\" \r\n [autoDisplayFirst]=\"false\" optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\" (onChange)=\"actionCambioTipo($event)\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'tipo' | translate}} de {{'dato' |\r\n translate}}*</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"rompimiento || agrupamiento\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"tipoInformacion\" required\r\n maxlength=\"10\" />\r\n <label for=\"tipoInformacion\">{{'tipo' | translate}} {{'informacion' |\r\n translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"conSeparador\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus formControlName=\"columna\" required\r\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"2\" />\r\n <label for=\"descripcion\">{{'columna' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus formControlName=\"posicionInicial\"\r\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"4\" />\r\n <label for=\"descripcion\">{{'posicioninicial' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus formControlName=\"posicionFinal\" (onchange)=\"this.formulario.get('posicionFinal').updateValueAndValidity()\"\r\n onkeypress='return event.charCode >= 48 && event.charCode <= 57' type=\"text\" maxlength=\"4\" />\r\n <label for=\"descripcion\">{{'posicionfinal' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == 'F'\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"formato\"\r\n maxlength=\"50\" />\r\n <label for=\"descripcion\">{{'formato' | translate}} *</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == 'N'\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_FORMATOS\" formControlName=\"formato\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"true\" optionValue=\"codigo\" optionLabel=\"nombre\" [showClear]=\"false\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'formato' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"formulario.get('tipoDato').value == this.fuentePipe.DECIMAL || formulario.get('tipoDato').value == this.fuentePipe.NUMERO || formulario.get('tipoDato').value == this.fuentePipe.TEXTO || formulario.get('tipoDato').value == this.fuentePipe.FECHA\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"homologaciones\" formControlName=\"homologacion\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionValue=\"key\" optionLabel=\"label\" [showClear]=\"true\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'homologacion' | translate}} </label>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end align-content-center mt-3\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" *ngIf=\"!isNew\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\" *ngIf=\"isNew\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\"\r\n (click)=\"eliminar($event,formulario.value)\" icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\"\r\n *ngIf=\"!isNew\"></button>\r\n </div>\r\n\r\n </div>\r\n</form>\r\n</div>\r\n</p-dialog>\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\r\n\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { FuenteEntradaModel } from '../../../../seguridad/modelos/FuenteEntradaModel';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport {RecursoPuntoModel} from '../../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { FuenteCampoModel } from '../../../../seguridad/modelos/FuenteCampoModel';\r\nimport { FuenteServicioModel } from '../../../../seguridad/modelos/FuenteServicioModel'; \r\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\r\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\r\nimport { FuenteGeneralService } from '../../../services/fuentegeneral.service';\r\nimport { ParametrosGeneralModel } from '../../../../seguridad/modelos/ParametrosGeneralModel';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PopupRecursoComponent } from '../../../popups/popup-recurso/popup-recurso.component';\r\nimport { AbstractControl, AsyncValidatorFn, FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\r\nimport { Observable, of } from 'rxjs';\r\nimport { MenuService } from '../../../../core/servicios/menu.service'\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { TableModule } from 'primeng/table';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\r\nimport { FuenteGeneralServicioComponent } from '../fuente-general-servicio/fuente-general-servicio.component'\r\nimport { PopupCamposFuenteGeneralComponent } from '../../../popups/popup-campos-fuente-general/popup-campos-fuente-general.component';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n@Component({\r\n imports: [TranslateModule, InputTextModule,CommonModule, AccordionModule, DropdownModule, FormsModule, TableModule, TablaGeneralComponent, FiltroGeneralComponent, ButtonModule, ReactiveFormsModule, GeneralPipe, FuentePipe, InputHelperSeleccionPlantillaComponent, PopupCamposFuenteGeneralComponent, FuenteGeneralServicioComponent, PopupRecursoComponent, InputTextareaModule, ConfirmPopupModule, ButtonModule, RouterModule],\r\n standalone: true,\r\n providers: [MessageService,ConfirmationService],\r\n templateUrl: './mantenimiento-fuente-general.page.html',\r\n styleUrls: ['./mantenimiento-fuente-general.page.scss']\r\n})\r\nexport class MantenimientoFuenteGeneralPage implements OnInit {\r\n @ViewChild(PopupRecursoComponent) popup: PopupRecursoComponent;\r\n\r\n eventoLlaveTabla;\r\n isNew: boolean = false;\r\n entrada: FuenteEntradaModel = new FuenteEntradaModel();\r\n entradas: FuenteEntradaModel[] = [];\r\n campos: FuenteCampoModel[] = [];\r\n campo: FuenteCampoModel = new FuenteCampoModel();\r\n servicios: FuenteServicioModel[] = [];\r\n servicio: FuenteServicioModel = new FuenteServicioModel();\r\n recursos: RecursoPuntoModel[] = [];\r\n recurso: RecursoPuntoModel = new RecursoPuntoModel;\r\n fuenteServicio: FuenteServicioModel = new FuenteServicioModel();\r\n fuenteEntradaDTO: FuenteEntradaModel = new FuenteEntradaModel();\r\n fuenteDTO: FuenteGeneralModel = new FuenteGeneralModel();\r\n listadoNotificacion: FuenteServicioModel[] = [];\r\n mapaservicio;\r\n listaServicios;\r\n verPuntoProceso: boolean;\r\n loadFormulario: boolean;\r\n /* BOOLEANOS */\r\n public serviciosMotor: boolean;\r\n public unicoRegistro: boolean;\r\n public agrupamiento: boolean;\r\n public rompimiento: boolean;\r\n public mostrarHoja: boolean;\r\n public sinSeparador: boolean;\r\n public conSeparador: boolean;\r\n public nuevaNotificacion: boolean;\r\n public servicioWeb: boolean = false;\r\n public nuevoRCampo: boolean;\r\n public mantenimientoServicio: boolean;\r\n public nuevoServicioP: boolean;\r\n public abrirAcordion: boolean;\r\n vistaVisualizar: String;\r\n paginatorEntrada = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n paginatorCampo = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n paginatorServicios = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n paginatorRecursos = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n paginatorNotificaciones = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n filtersEntrada = [];\r\n filtersCampo = [];\r\n filtroServicio = [];\r\n formulario: FormGroup;\r\n formularioNoti: FormGroup;\r\n\r\n v:any;\r\n\r\n constructor(private activeRoute: ActivatedRoute, private authService: AuthService, private generalService: GeneralService, public fuentePipe: FuentePipe, public generalPipe: GeneralPipe,\r\n private notificacionesBusService: ToastService, private confirmationService: ConfirmationService, private router: Router, public utilsService: UtilsService, private translateService: TranslateService,\r\n private fuenteService: FuenteGeneralService, private formBuilder: FormBuilder, private menuService: MenuService) {\r\n this.eventoLlaveTabla = this.activeRoute.snapshot.paramMap.get('llaveTabla');\r\n }\r\n ngOnInit(): void {\r\n this.cargar();\r\n this.menuService.setBreadcrumb([{ label: 'Fuente General', command: (event) => this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral']) }, { label: 'Mantenimiento' }]);\r\n }\r\n cargarFiltros() {\r\n this.filtersEntrada = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }\r\n ];\r\n this.filtersCampo = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }\r\n ]\r\n }\r\n\r\n async cargar() {\r\n try {\r\n if (this.eventoLlaveTabla != null) {\r\n this.fuenteDTO.llaveTabla = this.eventoLlaveTabla;\r\n this.fuenteServicio.tipo = 'N'\r\n this.fuenteServicio.fuente = this.fuenteDTO.llaveTabla;\r\n this.fuenteDTO = await this.generalService.queryForObject(new GeneralModel('FuenteGeneralDTO', null, false, this.fuenteDTO)).toPromise();\r\n await this.cargarFormulario();\r\n await this.formularioNotificacion();\r\n this.cargarFiltros();\r\n this.cargaBooleanos();\r\n this.cargarEntradas();\r\n this.cargarCampos();\r\n this.cargarMapaServicios();\r\n } else {\r\n this.isNew = true;\r\n await this.cargarFormulario()\r\n return\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n }\r\n\r\n async cargarFormulario() {\r\n this.formulario = this.formBuilder.group({\r\n llaveTabla: new FormControl(this.fuenteDTO?.llaveTabla ? this.fuenteDTO?.llaveTabla : this.utilsService.generarLlave()),\r\n descripcion: new FormControl(this.fuenteDTO.descripcion, [Validators.required]),\r\n proceso: new FormControl(this.fuenteDTO?.proceso, [Validators.required]),\r\n formulaDescripcion: new FormControl(this.fuenteDTO?.formulaDescripcion),\r\n tipo: new FormControl(this.fuenteDTO?.tipo, [Validators.required]),\r\n codigo: new FormControl(this.fuenteDTO?.codigo),\r\n excel: new FormControl(this.fuenteDTO?.excel),\r\n hoja: new FormControl(this.fuenteDTO?.hoja),\r\n separador: new FormControl(this.fuenteDTO?.separador, [Validators.required]),\r\n motor: new FormControl(this.fuenteDTO?.motor),\r\n ejecucion: new FormControl(this.fuenteDTO?.ejecucion, [Validators.required]),\r\n tipoInfoColumna: new FormControl(this.fuenteDTO?.tipoInfoColumna),\r\n tipoInfoInicial: new FormControl(this.fuenteDTO?.tipoInfoInicial),\r\n tipoInfoFinal: new FormControl(this.fuenteDTO?.tipoInfoFinal),\r\n grupoColumna: new FormControl(this.fuenteDTO?.grupoColumna),\r\n grupoInicial: new FormControl(this.fuenteDTO?.grupoInicial),\r\n grupoFinal: new FormControl(this.fuenteDTO?.grupoFinal),\r\n datoRompe: new FormControl(this.fuenteDTO?.datoRompe),\r\n guardarCargue: new FormControl(this.fuenteDTO?.guardarCargue),\r\n numeroFila: new FormControl(this.fuenteDTO?.numeroFila),\r\n plantilla: new FormControl(this.fuenteDTO?.plantilla),\r\n validadorLinea: new FormControl(this.fuenteDTO?.validadorLinea),\r\n aplicacion: new FormControl(this.fuenteDTO?.aplicacion ? this.fuenteDTO?.aplicacion : this.authService.getTokenKey('aplicacion')),\r\n });\r\n this.loadFormulario = true\r\n }\r\n\r\n async validar() {\r\n Object.keys(this.formulario.controls).forEach((key) => {\r\n this.formulario.get(key).clearValidators();\r\n this.formulario.get(key).updateValueAndValidity();\r\n });\r\n this.formulario.get('descripcion').addValidators([Validators.required]);\r\n this.formulario.get('proceso').addValidators([Validators.required]);\r\n this.formulario.get('tipo').addValidators([Validators.required]);\r\n this.formulario.get('separador').addValidators([Validators.required]);\r\n this.formulario.get('ejecucion').addValidators([Validators.required]);\r\n if (this.isServiciosMotor()) {\r\n this.formulario.get('codigo').addValidators([Validators.required]);\r\n } else {\r\n this.formulario.get('guardarCargue').addValidators([Validators.required]);\r\n this.formulario.get('ejecucion').addValidators([Validators.required]);\r\n this.formulario.get('separador').addValidators([Validators.required]);\r\n }\r\n if ((this.isRompimiento() || this.isAgrupamiento()) && this.isConSeparador()) {\r\n this.formulario.get('tipoInfoColumna').addValidators([Validators.required]);\r\n }\r\n if ((this.isRompimiento() || this.isAgrupamiento()) && this.isSinSeparador()) {\r\n this.formulario.get('tipoInfoInicial').addValidators([Validators.required]);\r\n this.formulario.get('tipoInfoFinal').setAsyncValidators([this.noNulo('tipoInfoFinal'), this.mayorQue('tipoInfoFinal', 'tipoInfoInicial')]);\r\n }\r\n if (this.isAgrupamiento() && this.isConSeparador()) {\r\n this.formulario.get('grupoColumna').addValidators([Validators.required]);\r\n }\r\n if (this.isAgrupamiento() && this.isSinSeparador()) {\r\n this.formulario.get('grupoInicial').addValidators([Validators.required]);\r\n this.formulario.get('grupoFinal').setAsyncValidators([this.noNulo('grupoFinal'), this.mayorQue('grupoFinal', 'grupoInicial')]);\r\n }\r\n if ((this.isUnicoRegistro()) && this.isConSeparador() && this.isUnicoRegistro() && this.formulario.get('excel').value == 'S') {\r\n this.formulario.get('hoja').addValidators([Validators.required]);\r\n }\r\n if (this.isUnicoRegistro()) {\r\n this.formulario.get('motor').addValidators([Validators.required]);\r\n }\r\n if (this.formulario.get('motor').value != 'S') {\r\n this.formulario.get('ejecucion').addValidators([Validators.required]);\r\n this.formulario.get('guardarCargue').addValidators([Validators.required]);\r\n }\r\n if (this.isRompimiento()) {\r\n this.formulario.get('datoRompe').addValidators([Validators.required]);\r\n }\r\n Object.keys(this.formulario.controls).forEach((key) => {\r\n this.formulario.get(key).updateValueAndValidity();\r\n });\r\n\r\n }\r\n\r\n async guardar() {\r\n try {\r\n await this.validar();\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n await sleep(10);\r\n if (this.formulario.valid) {\r\n this.formulario.get('motor').setValue(this.isUnicoRegistro() ? this.generalPipe.NO : this.fuenteDTO.motor);\r\n if (this.isNew) {\r\n this.fuenteDTO = await this.generalService.crearRegistro(new GeneralModel('FuenteGeneralDTO', null, false, this.formulario.value)).toPromise();\r\n await this.cargarFormulario()\r\n this.isNew = false;\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n this.cargaBooleanos();\r\n this.cargarEntradas();\r\n this.cargarCampos();\r\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral/US_editar/mantenimiento', this.fuenteDTO.llaveTabla]);\r\n return null;\r\n }\r\n if ((await this.generalService.update(new GeneralModel('FuenteGeneralDTO', null, false, this.formulario.value)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n return null;\r\n }\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n let comodinValidador: boolean = false;\r\n Object.keys(this.formulario.controls).forEach((key) => {\r\n if (this.formulario.get(key).errors) {\r\n if (this.formulario.get(key).errors['mayorQue']) {\r\n comodinValidador = true;\r\n this.formulario.get(key).markAsDirty();\r\n return;\r\n }\r\n this.formulario.get(key).markAsDirty();\r\n }\r\n });\r\n if (comodinValidador == false) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n async eliminar(event) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: 'Si',\r\n accept: () => {\r\n this.setEliminar();\r\n },\r\n reject: () => {\r\n\r\n }\r\n });\r\n }\r\n\r\n async setEliminar() {\r\n try {\r\n\r\n if ((await this.generalService.delete(new GeneralModel('FuenteGeneralDTO', null, false, { llaveTabla: this.formulario.get('llaveTabla').value })).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n return\r\n }\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/fuenteGeneral']);\r\n\r\n } catch (error) {\r\n console.log(JSON.stringify(error));\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n /* ENTRADA */\r\n\r\n async cargarEntradas(event?) {\r\n this.entradas = []\r\n let objeto = {}\r\n objeto = {\r\n paginacionRegistroInicial: event?.first ? event?.first : 0,\r\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\r\n fuente: this.fuenteDTO.llaveTabla,\r\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion.value + '%' : null\r\n }\r\n this.entradas = await this.generalService.queryForList(new GeneralModel('FuenteEntradaDTO', null, false, objeto)).toPromise();\r\n this.paginatorEntrada.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteEntradaDTO', null, false, objeto)).toPromise();\r\n }\r\n\r\n nuevaEntrada() {\r\n this.vistaVisualizar = 'nuevo'\r\n }\r\n\r\n async agregarEntrada(dato: FuenteEntradaModel) {\r\n console.log(dato);\r\n\r\n if (dato == null) {\r\n this.notificacionesBusService.showWarning('faltan campos para el insertar el registro');\r\n return;\r\n }\r\n dato.fuente = this.fuenteDTO.llaveTabla;\r\n if ((await this.generalService.crearRegistro(new GeneralModel('FuenteEntradaDTO', null, false, dato)).toPromise()) != null) {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n this.entrada = new FuenteEntradaModel();\r\n this.vistaVisualizar = '';\r\n this.entradas = []\r\n this.cargarEntradas();\r\n return\r\n }\r\n this.notificacionesBusService.showError(this.generalPipe.MENSAJE_GUARDAR_NO);\r\n }\r\n\r\n async editarEntrada(entradaEdit: FuenteEntradaModel) {\r\n if ((await this.generalService.update(new GeneralModel('FuenteEntradaDTO', null, false, entradaEdit)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.NO_ACTUALIZA);\r\n return\r\n }\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR)\r\n }\r\n\r\n eliminarEntrada(event, entradaDelete: FuenteEntradaModel) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: 'Si',\r\n accept: () => {\r\n this.setEliminarEntrada(entradaDelete);\r\n },\r\n reject: () => {\r\n\r\n }\r\n });\r\n }\r\n\r\n async setEliminarEntrada(entradaDelete: FuenteEntradaModel) {\r\n if ((await this.generalService.delete(new GeneralModel('FuenteEntradaDTO', null, false, entradaDelete)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n return\r\n }\r\n this.entradas = []\r\n await this.cargarEntradas()\r\n this.ngOnInit();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n }\r\n cancelarEntrada() {\r\n this.vistaVisualizar = '';\r\n this.entrada = new FuenteEntradaModel();\r\n }\r\n\r\n /*CAMPO*/\r\n\r\n async cargarCampos(event?) {\r\n this.campos = [];\r\n let objeto = {\r\n paginacionRegistroInicial: event?.first ? event?.first : 0,\r\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\r\n fuente: this.fuenteDTO.llaveTabla,\r\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion?.value + '%' : null,\r\n origen: 'C',\r\n }\r\n \r\n this.campos = await this.generalService.queryForList(new GeneralModel('FuenteCampoDTO', null, false, objeto)).toPromise();\r\n this.paginatorCampo.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteCampoDTO', null, false, objeto)).toPromise()\r\n }\r\n\r\n nuevoCampo() {\r\n this.nuevoRCampo = true;\r\n this.campo = new FuenteCampoModel();\r\n }\r\n\r\n seleccionCampo(event) {\r\n this.nuevoRCampo = true;\r\n this.campo = event.data;\r\n }\r\n async regresarCampo() {\r\n await this.cargarCampos();\r\n this.nuevoRCampo = false;\r\n this.campo = null;\r\n }\r\n\r\n /*SERVICIOS */\r\n\r\n async cargarServicios(event?) {\r\n let objeto = {\r\n paginacionRegistroInicial: event?.first ? event?.first : 0,\r\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\r\n fuente: this.fuenteDTO.llaveTabla,\r\n tipo: 'Servicio',\r\n descripcion: event?.filters?.descripcion?.value ? '%' + event?.filters?.descripcion?.value + '%' : null,\r\n }\r\n this.servicios = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\r\n this.paginatorServicios.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\r\n }\r\n async cargarMapaServicios() {\r\n\r\n let map: Map<string, string> = new Map<string, string>();\r\n this.listaServicios = await this.fuenteService.obtenerListaServicio(new ParametrosGeneralModel()).toPromise();\r\n this.listaServicios.forEach(element => {\r\n map.set(element.codigo, element.descripcion);\r\n })\r\n this.mapaservicio = Array.from(map, ([key, label]) => ({ key, label }));\r\n console.log(this.mapaservicio);\r\n\r\n }\r\n\r\n async seleccionarServicio(event) {\r\n this.servicio = event.data;\r\n this.nuevoServicioP = false;\r\n this.mantenimientoServicio = true;\r\n }\r\n\r\n regresarServicio() {\r\n this.abrirAcordion = true\r\n this.mantenimientoServicio = false\r\n this.nuevoServicioP = true;\r\n this.cargarServicios();\r\n }\r\n\r\n\r\n nuevoServicio() {\r\n this.mantenimientoServicio = true;\r\n this.nuevoServicioP = true;\r\n }\r\n\r\n\r\n transform(value: any, ...args: any): any {\r\n let result = value;\r\n if (args[0] == 'mapaServicio') { this.mapaservicio.forEach(data => { if (data.key === value) { result = data.label } }); }\r\n return result;\r\n }\r\n\r\n /* PUNTO PROCESO */\r\n\r\n async cargarRecurso(event?) {\r\n let objeto = {\r\n paginacionRegistroInicial: event?.first ? event?.first : 0,\r\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\r\n fuente: this.fuenteDTO.llaveTabla,\r\n }\r\n this.recursos = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, objeto)).toPromise();\r\n this.paginatorRecursos.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('RecursoPuntoDTO', null, false, objeto)).toPromise();\r\n }\r\n\r\n async seleccionarRecurso(event) {\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n this.verPuntoProceso = true\r\n await sleep(10);\r\n this.recurso = event.data;\r\n this.popup.ver(this.recurso, this.fuenteDTO.llaveTabla, false, 'F');\r\n\r\n }\r\n async nuevoRecurso() {\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n this.verPuntoProceso = true\r\n await sleep(10);\r\n this.popup.ver(new RecursoPuntoModel(), this.fuenteDTO.llaveTabla, true, 'F');\r\n }\r\n\r\n async cerrarRecurso() {\r\n this.verPuntoProceso = false;\r\n await this.cargarRecurso(null);\r\n }\r\n\r\n /*NOTIFICACIONES */\r\n\r\n async cargarListadoNotificaciones(event?) {\r\n let objeto = {\r\n paginacionRegistroInicial: event?.first ? event?.first : 0,\r\n paginacionRegistroFinal: event?.rows ? event?.rows : 10,\r\n tipo: 'N',\r\n fuente: this.fuenteDTO.llaveTabla,\r\n }\r\n this.listadoNotificacion = await this.generalService.queryForList(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\r\n this.paginatorNotificaciones.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FuenteServicioDTO', null, false, objeto)).toPromise();\r\n }\r\n\r\n async nuevoRegistroNotificacion() {\r\n try {\r\n this.vistaVisualizar = 'nuevoN';\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n cancelarNotificacion() {\r\n this.vistaVisualizar = null;\r\n this.fuenteServicio = new FuenteServicioModel();\r\n }\r\n\r\n async formularioNotificacion() {\r\n this.formularioNoti = this.formBuilder.group({\r\n tipo: new FormControl(this.fuenteServicio.tipo ? this.fuenteServicio.tipo : 'N'),\r\n fuente: new FormControl(this.fuenteServicio.fuente ? this.fuenteServicio.fuente : this.fuenteDTO.llaveTabla),\r\n tipoRecurso: new FormControl(this.fuenteServicio?.tipoRecurso, [Validators.required]),\r\n correo: new FormControl(this.fuenteServicio?.correo),\r\n descripcion: new FormControl(this.fuenteServicio?.descripcion, [Validators.required]),\r\n predefinido: new FormControl(this.fuenteServicio?.predefinido, [Validators.required]),\r\n correoCopia: new FormControl(this.fuenteServicio?.correoCopia),\r\n });\r\n }\r\n\r\n validarCorreo() {\r\n if (this.formularioNoti.get('tipoRecurso').value == 'F') {\r\n this.formularioNoti.get('correo').setValidators([Validators.required]);\r\n } else {\r\n this.formularioNoti.get('correo').clearValidators();\r\n }\r\n this.formularioNoti.get('correo').updateValueAndValidity();\r\n }\r\n\r\n async agregarNotificacion(noti, nuevo) {\r\n try {\r\n if (this.formularioNoti.valid) {\r\n if (nuevo) {\r\n this.fuenteServicio = await this.generalService.crearRegistro(new GeneralModel('FuenteServicioDTO', null, false, this.formularioNoti.value)).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n }\r\n\r\n this.cargarListadoNotificaciones();\r\n this.fuenteServicio = new FuenteServicioModel();\r\n this.formularioNotificacion()\r\n this.vistaVisualizar = null;\r\n } else {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n Object.keys(this.formularioNoti.controls).forEach((key) => {\r\n if (this.formularioNoti.get(key).errors) {\r\n this.formularioNoti.get(key).markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(JSON.stringify(error));\r\n }\r\n\r\n }\r\n\r\n eliminarNotificacion(event, noti: FuenteServicioModel) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: 'Si',\r\n accept: () => {\r\n this.setEliminarNotificacion(noti);\r\n },\r\n reject: () => {\r\n\r\n }\r\n });\r\n }\r\n\r\n async setEliminarNotificacion(noti: FuenteServicioModel) {\r\n if ((await this.generalService.delete(new GeneralModel('FuenteServicioDTO', null, false, noti)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n this.ngOnInit();\r\n return\r\n }\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.cargarListadoNotificaciones();\r\n }\r\n\r\n async cargaBooleanos() {\r\n if (this.fuenteDTO == null || this.formulario.get('proceso').value == null) {\r\n this.servicioWeb = false;\r\n } if (this.formulario.get('proceso').value == this.fuentePipe.SERVICIO) {\r\n this.formulario.get('ejecucion').setValue(this.fuentePipe.SERVICIO_EJECUCION)\r\n this.formulario.get('tipo').setValue(this.fuentePipe.UNICO_REGISTRO);\r\n this.formulario.get('separador').setValue(this.fuentePipe.COMA);\r\n this.servicioWeb = true;\r\n }\r\n Object.keys(this.formulario.controls).forEach((key) => { this.formulario.get(key).updateValueAndValidity(); });\r\n }\r\n\r\n isServicioWeb() {\r\n if (this.formulario.value == null || this.formulario.get('proceso').value == null) {\r\n return false;\r\n } if (this.formulario.get('proceso').value == this.fuentePipe.SERVICIO) {\r\n this.formulario.get('ejecucion').setValue(this.fuentePipe.SERVICIO_EJECUCION)\r\n this.formulario.get('tipo').setValue(this.fuentePipe.UNICO_REGISTRO);\r\n this.formulario.get('separador').setValue(this.fuentePipe.COMA);\r\n Object.keys(this.formulario.controls).forEach((key) => { this.formulario.get(key).updateValueAndValidity(); });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isAgrupamiento() {\r\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.AGRUPAMIENTO;\r\n }\r\n isRompimiento() {\r\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.ROMPIMIENTO;\r\n }\r\n isUnicoRegistro() {\r\n return this.formulario.value != null && this.formulario.get('tipo').value == this.fuentePipe.UNICO_REGISTRO ? true : false;\r\n }\r\n isMostrarHoja() {\r\n return this.isUnicoRegistro() && this.formulario.get('excel').value == this.generalPipe.SI ? true : false;\r\n }\r\n isSinSeparador() {\r\n return this.formulario.value != null && this.formulario.get('separador').value == this.fuentePipe.SIN_SEPARADOR ? true : false;\r\n }\r\n isConSeparador() {\r\n return ((this.formulario.value != null) && (this.formulario.get('separador').value != null && this.formulario.get('separador').value != this.fuentePipe.SIN_SEPARADOR));\r\n }\r\n isNuevaNotificacion() {\r\n return this.fuenteServicio != null && this.fuenteServicio.llaveTabla != null ? true : false;\r\n }\r\n isServiciosMotor() {\r\n return this.formulario.get('motor').value == this.generalPipe.SI ? true : false;\r\n }\r\n\r\n obtenerArchivoPlanilla(event) {\r\n this.formulario.get('plantilla').setValue(event.data);\r\n }\r\n\r\n obtenerArchivoPlanillaServicio(event) {\r\n this.formularioNoti.get('predefinido').setValue(event.label);\r\n }\r\n\r\n\r\n noNulo(key): AsyncValidatorFn {\r\n return (control: AbstractControl): Observable<ValidationErrors> => {\r\n let bReturn: boolean = true;\r\n if (this.formulario.controls[key].value == '') {\r\n bReturn = false;\r\n }\r\n let err: ValidationErrors = { 'nulo': true };\r\n return bReturn ? of(null) : of(err);\r\n };\r\n }\r\n\r\n\r\n setearCampoNuevo(event){\r\n this.campos.push(event);\r\n }\r\n\r\n mayorQue(key, keyCompara): AsyncValidatorFn {\r\n return (control: AbstractControl): Observable<ValidationErrors> => {\r\n let bReturn: boolean = true;\r\n if (this.formulario.controls[key].value < this.formulario.controls[keyCompara].value) {\r\n this.notificacionesBusService.showWarning('El valor no debe ser mayor a ' + this.formulario.controls[keyCompara].value);\r\n bReturn = false;\r\n }\r\n let err: ValidationErrors = { 'mayorQue': true };\r\n return bReturn ? of(null) : of(err);\r\n };\r\n }\r\n}\r\n","<p-confirmPopup></p-confirmPopup>\r\n<div *ngIf=\"loadFormulario\">\r\n<div *ngIf=\"!mantenimientoServicio\">\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <h1>{{ 'fuente'| translate}}</h1>\r\n <button pButton pRipple routerLink=\"/{{utilsService.obtenerBase()}}/webcommon/fuentearchivo/fuente/fuenteGeneral\" label=\"Regresar\"\r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold\"></button>\r\n </div>\r\n \r\n <div class=\"card\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'basica' | translate}}</h5>\r\n <form [formGroup]=\"formulario\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"Inputgroup m-0 mb-3\">\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"descripcion\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"descripcion\">{{'descripcion' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\" field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.ORIGEN_DATOS\" \r\n formControlName=\"proceso\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\r\n optionLabel=\"nombre\" [disabled]=\"!isNew\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'origen' | translate}} de\r\n {{'datos' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"formulario.get('proceso').value == 'S'\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.SERVICIOS_WEB\" \r\n formControlName=\"formulaDescripcion\" [autoDisplayFirst]=\"false\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" >\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'servicioweb' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_FUENTE\" \r\n formControlName=\"tipo\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\r\n optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\">\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'tipo' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\" field col-4 md:col-4 lg:col-4\" *ngIf=\"isServiciosMotor()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus\r\n type=\"text\" formControlName=\"codigo\" />\r\n <label for=\"descripcion\">{{'codigo' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"(isUnicoRegistro()) && isConSeparador()\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" \r\n formControlName=\"excel\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\r\n optionLabel=\"nombre\" > </p-dropdown>\r\n <label for=\"descripcion\">{{'Archivo' | translate}}\r\n {{'excel' | translate}} </label>\r\n </span>\r\n </div>\r\n <div class=\" field col-4 md:col-4 lg:col-4\"*ngIf=\"(isUnicoRegistro()) && isConSeparador() && this.isUnicoRegistro() && this.formulario.get('excel').value == 'S'\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"hoja\" pInputText autofocus type=\"text\" />\r\n <label for=\"descripcion\">{{'hojaexcel' | translate}} *\r\n </label>\r\n </span>\r\n\r\n </div>\r\n <div class=\" field col-4 md:col-4 lg:col-4\" *ngIf=\"!isServicioWeb()\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_SEPARADORES\" \r\n formControlName=\"separador\" [autoDisplayFirst]=\"false\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" >\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'separador' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isUnicoRegistro()\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_MOTOR\" \r\n formControlName=\"motor\" [autoDisplayFirst]=\"false\" optionValue=\"codigo\"\r\n optionLabel=\"nombre\" [disabled]=\"!isNew\" >\r\n </p-dropdown>\r\n <label for=\"descripcion\">{{'motor' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('motor').value != 'S'\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_EJECUCION\" \r\n formControlName=\"ejecucion\" [autoDisplayFirst]=\"false\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\"> </p-dropdown>\r\n <label for=\"descripcion\">{{'ejecutar' | translate}}\r\n {{'por' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\"\r\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isConSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" pInputText autofocus formControlName=\"tipoInfoColumna\"\r\n type=\"text\" maxlength=\"2\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\r\n />\r\n <label for=\"descripcion\">{{'tipoinformacioncolumna' |\r\n translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\"\r\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isSinSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"tipoInfoInicial\" pInputText autofocus\r\n type=\"text\" maxlength=\"3\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\r\n />\r\n <label for=\"descripcion\">{{'tipoinformacioninicial' |\r\n translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\"\r\n *ngIf=\"(isAgrupamiento() || isRompimiento()) && isSinSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"tipoInfoFinal\" pInputText autofocus\r\n type=\"text\" maxlength=\"3\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\r\n />\r\n <label for=\"descripcion\">{{'tipoinformacionfinal' |\r\n translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isConSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"grupoColumna\" pInputText autofocus\r\n type=\"text\" maxlength=\"2\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />\r\n <label for=\"descripcion\">{{'grupo' | translate}}\r\n {{'columna'| translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isSinSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"grupoInicial\" pInputText autofocus\r\n type=\"text\" maxlength=\"3\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>\r\n <label for=\"descripcion\">{{'grupo' | translate}}\r\n {{'inicial' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isAgrupamiento() && isSinSeparador()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"grupoFinal\" pInputText autofocus\r\n type=\"text\" maxlength=\"3\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\r\n />\r\n <label for=\"descripcion\">{{'grupofinal' | translate}} *\r\n </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"isRompimiento()\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"datoRompe\" pInputText autofocus\r\n type=\"text\" maxlength=\"3\"\r\n (input)=\"utilsService.validarCampoNumerico($event)\" (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>\r\n <label for=\"descripcion\">{{'dato' | translate}}\r\n {{'rompimiento' |translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('motor').value != 'S'\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" \r\n formControlName=\"guardarCargue\" [autoDisplayFirst]=\"false\"\r\n optionValue=\"codigo\" optionLabel=\"nombre\" [disabled]=\"isServicioWeb()\"> </p-dropdown>\r\n <label for=\"descripcion\">{{'guardar' | translate}}\r\n {{'informacion' | translate}} {{'cargue' | translate}} * </label>\r\n </span>\r\n </div>\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('excel').value == 'S'\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" formControlName=\"numeroFila\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"descripcion\">{{'numeroFila' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n <!-- PLANTILLA -->\r\n <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"this.formulario.get('excel').value == 'S'\">\r\n <span class=\"p-float-label\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"formulario.get('plantilla').value ? formulario.get('plantilla').value: ''\"\r\n (onSelected)=\"obtenerArchivoPlanilla($event)\" >\r\n </app-input-helper-seleccion-plantilla>\r\n \r\n </span>\r\n </div>\r\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"isServiciosMotor()\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\r\n formControlName=\"validadorLinea\" autofocus\r\n [autoResize]=\"true\"> </textarea>\r\n <label for=\"descripcion\">{{'validador' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end align-content-center mt-3\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar\" *ngIf=\"!isNew\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" label=\"Guardar\" *ngIf=\"isNew\"></button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\"\r\n (click)=\"eliminar($event)\" icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\"\r\n *ngIf=\"!isNew\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <p-accordion>\r\n <p-accordionTab *ngIf=\"!isNew\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'entrada' | translate}}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"flex align-items-center justify-content-between mb-2\">\r\n <app-filtro-general [filtros]=\"filtersEntrada\" [datatable]=\"tablaGeneralEntrada\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"field\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\r\n formControlName=\"descripcion\" autocomplete=\"off\" />\r\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaEntrada()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"entradas\" [scrollable]=\"true\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\r\n [rows]=\"paginatorEntrada.rows\"\r\n [paginator]=\"paginatorEntrada.totalRecords > paginatorEntrada.rows\" scrollDirection=\"horizontal\"\r\n styleClass=\"p-datatable-striped\" [rows]=\"paginatorEntrada.rows\"\r\n [totalRecords]=\"paginatorEntrada.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n [showCurrentPageReport]=\"true\" editMode=\"row\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n [lazy]=\"true\" (onLazyLoad)=\"cargarEntradas($event)\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\r\n <th class=\"w-6rem\">{{'tipo' | translate}} {{'dato' | translate}}</th>\r\n <th class=\"w-6rem\">{{'obligatorio' | translate}}</th>\r\n <th class=\"w-6rem\">{{'valor' | translate}} {{'defecto' | translate}}</th>\r\n <th class=\"w-6rem\"> </th>\r\n </tr>\r\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\r\n <td class=\"w-6rem\">\r\n <input #idDescripcion=\"ngModel\" pInputText type=\"text\" [(ngModel)]=\"entrada.descripcion\" class=\"w-full\" required>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-dropdown #idTipoDato=\"ngModel\" [options]=\"fuentePipe.LISTA_TIPO_DATO\" optionValue=\"codigo\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" class=\"w-full\" \r\n [(ngModel)]=\"entrada.tipoDato\" appendTo=\"body\" [autoZIndex]=\"false\" ></p-dropdown>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-dropdown #idObligatorio=\"ngModel\" [options]=\"generalPipe.LISTA_SINO\" optionValue=\"codigo\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" \r\n [(ngModel)]=\"entrada.obligatorio\" class=\"w-full\" appendTo=\"body\" [autoZIndex]=\"false\" ></p-dropdown>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <input #idValorDefecto=\"ngModel\" pInputText type=\"text\" [(ngModel)]=\"entrada.valorDefecto\" class=\"w-full\">\r\n </td>\r\n <td class=\"flex justify-content-end\">\r\n <div>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\r\n (click)=\"agregarEntrada(entrada)\" *ngIf=\"idDescripcion.valid && idTipoDato.valid && idObligatorio.valid\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"cancelarEntrada()\" icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-entrada let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"entrada\">\r\n <td class=\"w-6rem\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"entrada.descripcion\"\r\n class=\"w-full\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{entrada.descripcion}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPO_DATO\" optionValue=\"codigo\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\r\n [(ngModel)]=\"entrada.tipoDato\" class=\"w-full\">\r\n </p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{entrada.tipoDato | fuentePipe:'listaTipoDato'}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"generalPipe.LISTA_SINO\" optionValue=\"codigo\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\r\n [(ngModel)]=\"entrada.obligatorio\" class=\"w-full\">\r\n </p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{entrada.obligatorio | generalPipe:'listaSiNo'}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td class=\"w-6rem\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"entrada.valorDefecto\"\r\n class=\"w-full\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{entrada.valorDefecto}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td class=\"flex justify-content-end\">\r\n <div>\r\n <!-- CHECK GUARDAR -->\r\n <!-- <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"editarEntrada(entrada)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\r\n <!-- CANCELAR -->\r\n <!-- <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\r\n <!-- EDITAR -->\r\n <!-- <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button> -->\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarEntrada($event,entrada)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n \r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"((!isNew) && (!isServicioWeb()))\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'campos' | translate}}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"flex align-items-center justify-content-between mb-2\">\r\n <app-filtro-general [filtros]=\"filtersCampo\" [datatable]=\"tablaGeneralCampo\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"field\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\r\n formControlName=\"descripcion\" autocomplete=\"off\" />\r\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampo()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table #tablaGeneralCampo [value]=\"campos\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\r\n [rows]=\"paginatorCampo.rows\" [paginator]=\"paginatorCampo.totalRecords > paginatorCampo.rows\"\r\n [totalRecords]=\"paginatorCampo.totalRecords\" [lazy]=\"true\" [showCurrentPageReport]=\"true\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" (onRowSelect)=\"seleccionCampo($event)\"\r\n selectionMode=\"single\" responsiveLayout=\"scroll\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n (onLazyLoad)=\"cargarCampos($event)\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\"\r\n [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-12rem\">{{'descripcion' | translate}}</th>\r\n <th class=\"w-12rem\">{{'tipodato' | translate}}</th>\r\n <th class=\"w-12rem\" *ngIf=\"(isRompimiento()) || (isAgrupamiento())\">{{'tipo' | translate}}\r\n {{'informacion' | translate}}</th>\r\n <th class=\"w-12rem\" *ngIf=\"isConSeparador()\">{{'columna' | translate}}</th>\r\n <th class=\"w-12rem\" *ngIf=\"isSinSeparador()\">{{'posicion' | translate}} {{'inicial' |\r\n translate}}</th>\r\n <th class=\"w-12rem\" *ngIf=\"isSinSeparador()\">{{'posicion' | translate}} {{'final' |\r\n translate}}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-campo>\r\n <tr [pSelectableRow]=\"campo\">\r\n <td class=\"w-12rem\">\r\n {{campo.descripcion}}\r\n </td>\r\n <td class=\"w-12rem\">\r\n {{campo.tipoDato | fuentePipe:'listaTipoDato'}}\r\n </td>\r\n <td class=\"w-12rem\" *ngIf=\"isRompimiento() || isAgrupamiento()\">\r\n {{campo.tipoInformacion}}\r\n </td>\r\n <td class=\"w-12rem\" *ngIf=\"isConSeparador()\">\r\n {{campo.columna}}\r\n </td>\r\n <td class=\"w-12rem\" *ngIf=\"isSinSeparador()\">\r\n {{campo.posicionInicial}}\r\n </td>\r\n <td class=\"w-12rem\" *ngIf=\"isSinSeparador()\">\r\n {{campo.posicionFinal}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n </p-table>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"!isNew\" [selected]=\"abrirAcordion\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'servicio' | translate}}s\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div>\r\n <div class=\"flex align-items-center justify-content-between mb-2\">\r\n <app-filtro-general [filtros]=\"filtersCampo\" [datatable]=\"tablaGeneralServicio\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"field\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\r\n formControlName=\"descripcion\" autocomplete=\"off\" />\r\n <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoServicio()\"\r\n icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table #tablaGeneralServicio [value]=\"servicios\" styleClass=\"p-datatable-striped\"\r\n [scrollable]=\"true\" [rows]=\"paginatorServicios.rows\"\r\n [paginator]=\"paginatorServicios.totalRecords > paginatorServicios.rows\"\r\n [totalRecords]=\"paginatorServicios.totalRecords\" [lazy]=\"true\"\r\n [showCurrentPageReport]=\"true\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\r\n (onRowSelect)=\"seleccionarServicio($event)\" selectionMode=\"single\" responsiveLayout=\"scroll\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n (onLazyLoad)=\"cargarServicios($event)\" selectionMode=\"single\"\r\n [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-12rem\">{{'servicio' | translate}}</th>\r\n <th class=\"w-12rem\">{{'descripcion' | translate}}</th>\r\n <th class=\"w-12rem\" *ngIf=\"!isUnicoRegistro()\">{{'tipo' | translate}} {{'informacion' |\r\n translate}}</th>\r\n <th class=\"w-12rem\">{{'orden' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-servicio>\r\n <tr [pSelectableRow]=\"servicio\">\r\n <td class=\"w-12rem\">\r\n {{transform(servicio.servicio,'mapaServicio')}}\r\n </td>\r\n <td class=\"w-12rem\">\r\n {{servicio.descripcion}}\r\n </td>\r\n <td class=\"w-12rem\" *ngIf=\"!isUnicoRegistro()\">\r\n {{servicio.tipoInformacion}}\r\n </td>\r\n <td class=\"w-12rem\">\r\n {{servicio.orden}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <p class=\"p-3 font-medium emptymessage\" >\r\n {{'mensajetablavacia' | translate}}\r\n </p>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n </p-table>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"!isNew\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'puntoproceso' | translate}}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"flex justify-content-end align-items-center\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoRecurso()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <p-table #tablaGeneralRecurso [value]=\"recursos\" styleClass=\"p-datatable-striped\"\r\n [scrollable]=\"true\" [rows]=\"paginatorRecursos.rows\" [paginator]=\"paginatorRecursos.totalRecords > paginatorRecursos.rows\"\r\n [totalRecords]=\"paginatorRecursos.totalRecords\" [lazy]=\"true\" [showCurrentPageReport]=\"true\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" (onRowSelect)=\"seleccionarRecurso($event)\"\r\n selectionMode=\"single\" responsiveLayout=\"scroll\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n (onLazyLoad)=\"cargarRecurso($event)\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\"\r\n [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-12rem\">{{'puntoproceso' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-recurso>\r\n <tr [pSelectableRow]=\"recurso\">\r\n <td class=\"w-12rem\">\r\n {{recurso.puntoProcesoDescripcion}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n </p-table>\r\n </div>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"!isNew\">\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"glyphicons glyphicons-notes-2\"></i>{{'notificacion' | translate}}\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n \r\n <div class=\"flex justify-content-end align-items-center\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoRegistroNotificacion()\"\r\n icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n\r\n\r\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"listadoNotificacion\" scrollable=\"[true]\" [tableStyle]=\"{ 'min-width': '90rem' }\"\r\n scrollDirection=\"horizontal\"[rows]=\"paginatorNotificaciones.totalRecords\" [paginator]=\"paginatorNotificaciones.totalRecords > paginatorNotificaciones.rows\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"paginatorEntrada.rows\" [totalRecords]=\"paginatorEntrada.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\r\n [showCurrentPageReport]=\"true\" editMode=\"row\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\r\n (onLazyLoad)=\"cargarListadoNotificaciones($event)\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"max-width: 10;\">{{'tipo' | translate}}</th>\r\n <th style=\"max-width: 20%;\">{{'correo' | translate}}</th>\r\n <th style=\"max-width: 20%;\">{{'asunto' | translate}}</th>\r\n <th style=\"max-width: 20%;\">{{'html' | translate}}</th>\r\n <th style=\"max-width: 20%;\">{{'copia' | translate}}</th>\r\n <th style=\"max-width: 10%;\"> </th>\r\n </tr>\r\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevoN'\" [formGroup]=\"formularioNoti\">\r\n <td style=\"max-width: 10%;\"> \r\n <p-dropdown [options]=\"fuentePipe.LISTA_TIPORECURSO\" optionValue=\"codigo\" formControlName=\"tipoRecurso\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" (onChange)=\"validarCorreo()\"></p-dropdown> \r\n </td>\r\n <td style=\"max-width: 20%;\" class=\"w-full\">\r\n <input pInputText type=\"text\" formControlName=\"correo\" *ngIf=\"formularioNoti?.get('tipoRecurso').value != 'P'\" class=\"w-full\" >\r\n </td>\r\n <td style=\"max-width: 20%;\">\r\n <input pInputText type=\"text\" formControlName=\"descripcion\"\r\n class=\"w-full\">\r\n </td>\r\n <td style=\"max-width: 20%;\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"formularioNoti?.get('predefinido').value ? formularioNoti?.get('tipoRecurso').value: ''\"\r\n (onSelected)=\"obtenerArchivoPlanillaServicio($event)\"\r\n [extensiones]=\"'html;jasper;jrxml'\">\r\n </app-input-helper-seleccion-plantilla>\r\n </td>\r\n <td style=\"max-width: 20%;\">\r\n <input pInputText type=\"text\" formControlName=\"correoCopia\" class=\"w-full\">\r\n </td>\r\n <td style=\"max-width: 10%;\">\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\r\n (click)=\"agregarNotificacion(null, true)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"cancelarNotificacion()\"\r\n icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-noti let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"noti\">\r\n <td style=\"max-width: 12%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"output\">\r\n {{noti.tipoRecurso | fuentePipe:'listaTipoRecurso'}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"max-width: 60%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"output\">\r\n {{noti.correo}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"max-width: 30%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"output\">\r\n {{noti.descripcion | generalPipe:'listaSiNo'}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"max-width: 50%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"output\">\r\n {{noti.predefinido}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"max-width: 30%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"output\">\r\n {{noti.correoCopia}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"max-width: 8%;\" class=\"justify-content-end\">\r\n <div class=\"flex align-items-center justify-content-center gap-2\">\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarNotificacion($event,noti)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"6\">\r\n {{'mensajetablavacia' | translate}} \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n </ng-template>\r\n </p-accordionTab>\r\n </p-accordion>\r\n</div>\r\n<div *ngIf=\"nuevoRCampo\">\r\n <app-popup-campos-fuente-general [mostrar]=\"nuevoRCampo\" [campo]=\"campo\" (regresar)=\"regresarCampo()\"\r\n [fuenteDTO]=\"formulario.value\"></app-popup-campos-fuente-general>\r\n</div>\r\n\r\n<div *ngIf=\"mantenimientoServicio\">\r\n <app-fuente-general-servicio [fuenteGeneral]=\"formulario.value\" [fuenteServicioDTO]=\"servicio\" [unica]=\"isUnicoRegistro()\"\r\n [servicios]=\"listaServicios\" (regresar)=\"regresarServicio()\" [isNew]=\"nuevoServicioP\" (regresarNuevo)=\"setearCampoNuevo($event)\">\r\n </app-fuente-general-servicio>\r\n</div>\r\n<div *ngIf=\"verPuntoProceso\">\r\n<app-popup-recurso (regresar)=\"cerrarRecurso()\"></app-popup-recurso>\r\n</div>\r\n</div>","export const CampoFormularioCons = {\r\n TEXTO:'T', \r\n COMBO:'C', \r\n NUMERO:'N',\r\n DECIMAL:'D',\r\n FECHA:'F', \r\n HORA:'X', \r\n FECHAHORA:'E', \r\n RADIO:'R',\r\n POPUP:'P',\r\n CHECK:'H',\r\n LOGICO:'L',\r\n TITULO:'I',\r\n SUBTITULO:'B',\r\n MENSAJE:'M',\r\n TEXTOAREA:'A',\r\n SECRET:'S',\r\n VALORHORA:'Z',\r\n AUTOCOMPLETAR:'Y',\r\n AUTOCOMPLETAR_AREA:'O',\r\n COMBOSQL:'Q',\r\n\t\r\n\tCOMBO_CONSULTA : 'Consulta',\r\n\tCOMBO_ESTATICO : 'Estarico',\r\n\t\r\n\tGRUPO_FINAL : 'F',\r\n\tGRUPO_INICIAL : 'I',\r\n\t\r\n\tCAMPO_LECTURA : 'L',\r\n\tCAMPO_EDITABLE : 'E',\r\n\tCAMPO_NO_VISIBLE : 'N',\r\n TEXTO_DES:'Texto', \r\n COMBO_DES:'Lista', \r\n NUMERO_DES:'Entero',\r\n DECIMAL_DES:'Decimal',\r\n FECHA_DES:'Fecha', \r\n RADIO_DES:'Alternativa',\r\n CHECK_DES:'Marca',\r\n LOGICO_DES:'Logico',\r\n TITULO_DES:'Titulo',\r\n SUBTITULO_DES:'Subtitulo',\r\n MENSAJE_DES:'Mensaje',\r\n TEXTOAREA_DES:'Texto Area',\r\n SECRET_DES:'Secret',\r\n COMBOSQL_DES:'Lista Sql',\r\n MAPA_TIPO_CAMPOS: new Map<string, string>()\r\n .set('T', 'Texto')\r\n\t.set('C', 'Combo')\r\n\t.set('N', 'Numero')\r\n\t.set('D', 'Decimal')\r\n\t.set('F', 'Fecha')\r\n\t.set('X', 'Hora')\r\n\t.set('R', 'Radio')\r\n\t.set('P', 'Popup')\r\n\t.set('H', 'Check')\r\n\t.set('L', 'Logico')\r\n\t.set('I', 'Titulo')\r\n\t.set('A', 'TextoArea')\r\n\t.set('S', 'Secreto')\r\n\t.set('Z', 'ValorHora'),\r\n\r\n MAPA_COMPONENTES_CARACTERISTICAS_ADI: new Map<string, string>()\r\n .set('T', 'Texto')\r\n\t.set('C', 'Combo')\r\n\t.set('N', 'Numero')\r\n\t.set('D', 'Decimal')\r\n\t.set('F', 'Fecha')\r\n\t.set('X', 'Hora')\r\n\t.set('R', 'Radio')\r\n\t.set('H', 'Check')\r\n\t.set('L', 'Logico')\r\n\t.set('I', 'Titulo')\r\n\t.set('A', 'TextoArea')\r\n\t.set('S', 'Secreto')\r\n\t.set('Z', 'ValorHora'),\r\n}","import { Type } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { CampoFormularioCons } from './CampoFormularioCons';\r\n\r\nexport class CampoFormularioModel {\r\n\r\n\tcaracteristica: boolean;\r\n\ttipo: string;\r\n\tdescripcion: string;\r\n\tdescripcionAdicional: string;\r\n\tvalor: any;\r\n\tlongitud: number;\r\n\tdecimales: number;\r\n\tcampo: string;\r\n\tobligatorio: boolean;\r\n\tlista: SelectItem[];\r\n\tlistaRespuesta: string[];\r\n\tmensaje: string;\r\n\tpopup: string;\r\n\ttitulo: boolean;\r\n\ttextoPopup: string;\r\n\toriginal: any;\r\n\tdato: any;\r\n\torden: number;\r\n\tresaltado: boolean;\r\n\teditable: string;\r\n\tnovedad: any;\r\n\tcampoTabla: string;\r\n\tfuncion: string;\r\n\tmensajeFuncion: string;\r\n\tcampoDepende: string;\r\n\tcampoReferencia: any;\r\n\tcampoReferenciaDos: any;\r\n\tlimpiarPopup: boolean;\r\n\tidGrupoPertenece: string;\r\n\tayuda: string;\r\n\tvalidarEspecial: string;\r\n\tpopupComponent: Type<any>;\r\n\tpropiedadesPopupComponent: Partial<any>\r\n\tlistaPopups: any[]\r\n\r\n\t//campos creados por primeng\r\n\tlistaAutocompleteFiltrada: SelectItem[];\r\n\r\n\tconstructor(tipo: string, descripcion: string, longitud: number, decimales: number,\r\n\t\tcampo: string, obligatorio: boolean, lista: SelectItem[], popup: string, editable: string) {\r\n\t\tthis.tipo = this.ajustar(tipo);\r\n\t\tthis.descripcion = descripcion;\r\n\t\tthis.longitud = longitud;\r\n\t\tthis.decimales = decimales;\r\n\t\tthis.campo = campo;\r\n\t\tthis.obligatorio = obligatorio;\r\n\t\tthis.lista = lista;\r\n\t\tthis.listaRespuesta = [];\r\n\t\tthis.popup = popup;\r\n\t\tthis.editable= editable;\r\n\t}\r\n\r\n\tprivate ajustar(tipo2){\r\n\t\tlet tipo = tipo2;\r\n\t\tif (tipo2 == ('1')) tipo = CampoFormularioCons.CHECK;\r\n\t\tif (tipo2 == ('2')) tipo = CampoFormularioCons.RADIO;\r\n\t\tif (tipo2 == ('3')) tipo = CampoFormularioCons.COMBO;\r\n\t\tif (tipo2 == ('4')) tipo = CampoFormularioCons.TEXTO;\r\n\t\tif (tipo2 == ('5')) tipo = CampoFormularioCons.NUMERO;\r\n\t\tif (tipo2 == ('6')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('7')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('8')) tipo = CampoFormularioCons.FECHA;\r\n\t\tif (tipo2 == ('9')) tipo = CampoFormularioCons.TEXTOAREA;\r\n\t\tif (tipo2 == ('11')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('12')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('13')) tipo = CampoFormularioCons.LOGICO;\r\n\t\tif (tipo2 == ('14')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('15')) tipo = CampoFormularioCons.POPUP;\r\n\t\tif (tipo2 == ('16')){\r\n\t\t\ttipo = CampoFormularioCons.TITULO;\r\n\t\t\tthis.titulo=true;\r\n\t\t}\r\n\t\tif (tipo2 == ('17')) tipo = CampoFormularioCons.DECIMAL;\r\n\t\tif (tipo2 == ('18')) tipo = CampoFormularioCons.SECRET;\r\n\t\tif (tipo2 == ('19')) tipo = CampoFormularioCons.HORA;\r\n\t\treturn tipo\r\n\t}\r\n\r\n\tfiltrarAutocomplete(event) {\r\n\t\tlet filtered : any[] = [];\r\n let query = event.query;\r\n for(let i = 0; i < this.lista.length; i++) {\r\n let objeto = this.lista[i];\r\n\t\t\tconsole.log(objeto)\r\n if (objeto.label.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n filtered.push(objeto);\r\n }\r\n }\r\n\r\n this.listaAutocompleteFiltrada = filtered;\r\n }\r\n\r\n\tisCambio(): boolean {\r\n\t\tif (this.tipo === CampoFormularioCons.TEXTO || this.tipo === CampoFormularioCons.TEXTOAREA || this.tipo === CampoFormularioCons.SECRET) {\r\n\t\t return (this.original == null ? '' : '' + this.original.toString().trim()) != (this.valor == null ? '' : '' + this.valor.toString().trim());\r\n\t\t}\r\n\t\tif (this.tipo === CampoFormularioCons.CHECK) {\r\n\t\t let respuestas = '';\r\n\t\t for (const item of this.listaRespuesta) {\r\n\t\t\trespuestas += item + ';';\r\n\t\t }\r\n\t\t return (this.original == null ? '' : '' + this.original) != (respuestas == null ? '' : '' + respuestas);\r\n\t\t}\r\n\t\treturn (this.original == null ? '' : '' + this.original) != (this.valor == null ? '' : '' + this.valor);\r\n\t }\r\n\r\n\tcargarValorPopup(event){\r\n\t\tconsole.log('cargarValorPopup')\r\n\t\tconsole.log(event)\r\n\t\tthis.valor = event;\r\n\t}\r\n}","import { Input, Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[hash]',\r\n standalone: true,\r\n })\r\n export class HashDirective {\r\n @Input() hash: string;\r\n \r\n constructor(public vcRef: ViewContainerRef) {}\r\n }","import { CampoFormularioModel } from \"./CampoFormulario\";\r\n\r\nexport class Cambio {\r\n viejo: any;\r\n nuevo: any;\r\n campo: CampoFormularioModel;\r\n \r\n constructor(viejo: any, nuevo: any, campo: CampoFormularioModel) {\r\n this.viejo = viejo;\r\n this.nuevo = nuevo;\r\n this.campo = campo;\r\n }\r\n }","import { Component, OnChanges, Input, OnInit, ComponentRef, Type, ViewChild, ViewContainerRef, ViewChildren, QueryList, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { CampoFormularioModel } from './objetosformulario/CampoFormulario';\r\nimport { HashDirective } from './objetosformulario/HashDirective';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { AuthService } from '../../servicios/auth.service';\r\nimport { Cambio } from './objetosformulario/Cambio';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { TableModule } from 'primeng/table';\r\n\r\n@Component({\r\n selector: 'formulario-dinamico',\r\n imports: [FormsModule, CalendarModule, CheckboxModule, InputTextareaModule, InputTextModule, RadioButtonModule, TooltipModule, DropdownModule, PasswordModule, CommonModule, InputNumberModule, AutoCompleteModule, HashDirective, TableModule],\r\n standalone: true,\r\n templateUrl: './formulariodinamico.component.html',\r\n styleUrls: ['./formulariodinamico.component.scss']\r\n})\r\nexport class FormulariodinamicoComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n @Input() campos: CampoFormularioModel[];\r\n listaSiNoRadioButton: any[] = [{ name: 'Si', key: 'S' }, { name: 'No', key: 'N' }];\r\n @ViewChild ('popup', { read: ViewContainerRef }) vcr: ViewContainerRef;\r\n @ViewChildren(HashDirective) private hashes: QueryList<HashDirective>;\r\n @Input() editable: boolean;\r\n @Input() objeto: any;\r\n @Input() isMensaje: boolean = false;\r\n public validando: boolean = false; \r\n verMensajeFuncion: boolean = false;\r\n public autoZIndex: string = 'true';\r\n\r\n constructor(public utilsService: UtilsService, private generalService: GeneralService, private authService: AuthService) { }\r\n\r\n ngOnChanges(){\r\n \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n this.verMensajeFuncion = false;\r\n\r\n this.campos.forEach(campo => {\r\n if(campo.mensajeFuncion){\r\n this.verMensajeFuncion = true;\r\n }\r\n if (campo.tipo == 'P'){\r\n if (campo.popupComponent){\r\n this.mostrarPopupFormulario(campo).then(data => {});\r\n }\r\n }\r\n })\r\n this.campos.sort((a, b) => a.orden - b.orden);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n modificar(objeto: any, editable: boolean) {\r\n\t\tthis.limpiar();\r\n\t\tthis.objeto = objeto;\r\n\t\tthis.editable = editable;\r\n this.campos.forEach(campo => {\r\n if (!campo.caracteristica){\r\n for (let atributo in objeto) {\r\n let valor = objeto[atributo];\r\n if (atributo == campo.campo){\r\n this.cargarValor(campo.campo, valor, null);\r\n }\r\n }\r\n }\r\n if(campo.campoDepende!= null){\r\n\t\t\t\tthis.campos.forEach(campo2 => {\r\n\t\t\t\t\tif(campo2.campo == campo.campoDepende){\r\n\t\t\t\t\t\tcampo2.campoReferencia = campo.valor;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n })\r\n \r\n this.campos.sort((a, b) => a.orden - b.orden);\r\n\t}\r\n\r\n modificarValorCamposAdicionales(objeto: any, idGrupo: string) {\r\n\t\tthis.objeto = objeto;\r\n this.campos.forEach(campo => {\r\n if(idGrupo == campo.idGrupoPertenece) {\r\n if (!campo.caracteristica){\r\n for (let atributo in objeto) {\r\n let valor = objeto[atributo];\r\n if (atributo == campo.campo){\r\n this.cargarValor(campo.campo, valor, null);\r\n }\r\n }\r\n }\r\n if(campo.campoDepende!= null){\r\n this.campos.forEach(campo2 => {\r\n if(campo2.campo == campo.campoDepende){\r\n campo2.campoReferencia = campo.valor;\r\n }\r\n })\r\n }\r\n }\r\n \r\n })\r\n \r\n this.campos.sort((a, b) => a.orden - b.orden);\r\n }\r\n\r\n guardar(){\r\n this.campos.forEach(data => {\r\n })\r\n }\r\n\r\n setValorPopup(objeto){\r\n }\r\n\r\n async loadComponentDynamic<T>(campo: CampoFormularioModel, component: Type<T>, props: Partial<T>) {\r\n var container = this.getContainerFor(campo.popup)\r\n container.clear();\r\n const hasProps: boolean = !!Object.keys(props).length;\r\n const compRef: ComponentRef<any> = container.createComponent( component ); //Angular 13\r\n \r\n if (hasProps) {\r\n for (let key of Object.keys(props)) {\r\n compRef.instance[key] = props[key];\r\n }\r\n }\r\n const componente = new campo.popupComponent();\r\n if('getDescripcionLlave' in componente ){\r\n compRef.instance['label'] = await componente.getDescripcionLlave(this.generalService, this.authService, campo.valor, campo)\r\n }\r\n\r\n }\r\n\r\n getContainerFor(name: string) {\r\n return this.hashes.find(x => x.hash === name).vcRef;\r\n }\r\n\r\n async mostrarPopupFormulario(campo: CampoFormularioModel){\r\n await this.loadComponentDynamic(campo, campo.popupComponent, campo.propiedadesPopupComponent)\r\n \r\n }\r\n\r\n validar(): boolean{\r\n this.validando = true;\r\n var validador = true;\r\n this.campos.forEach(campo => {\r\n if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor) ){\r\n if (campo.tipo == 'P') {\r\n var container = this.getContainerFor(campo.popup)\r\n container.clear()\r\n let props = campo.propiedadesPopupComponent;\r\n const hasProps: boolean = !!Object.keys(props).length;\r\n const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13\r\n if (hasProps) {\r\n for (let key of Object.keys(props)) {\r\n compRef.instance[key] = props[key];\r\n }\r\n }\r\n compRef.instance['booleano'] = true; \r\n }\r\n validador = validador && false;\r\n }\r\n })\r\n return validador;\r\n }\r\n\r\n getObjecto(): any{\r\n var campos2 = this.campos.filter(data => !data.caracteristica);\r\n campos2.forEach(campo => {\r\n this.objeto[campo.campo] = campo.valor;\r\n })\r\n return this.objeto;\r\n }\r\n\r\n camposCaracteristicaClear(){\r\n for (let i = 0; i < this.campos.length; i++){\r\n if (this.campos[i].caracteristica){\r\n this.campos.splice(i, 1)\r\n }\r\n }\r\n }\r\n\r\n cargarValor(campo: string, valor: any, dato: any) {\r\n this.campos.forEach(campoF => {\r\n if (campoF.campo == campo) {\r\n //campoF.cargar(valor);\r\n campoF.valor = valor;\r\n campoF.dato = dato;\r\n }\r\n\t\t})\r\n\t}\r\n \r\n getCamposCaracteristica() {\r\n\t\tvar camposReturn: CampoFormularioModel[] = [];\r\n\t\tthis.campos.forEach(campo => {\r\n if (campo.caracteristica) {\r\n camposReturn.push(campo);\r\n }\r\n\t\t})\r\n\t\treturn camposReturn;\r\n }\r\n\r\n obtenerCampo(campo: string){\r\n var retorno = null\r\n this.campos.forEach(cam => {\r\n if(cam.campo != null && cam.campo == campo){\r\n retorno = cam;\r\n }\r\n })\r\n\t\treturn retorno;\r\n\t}\r\n\r\n limpiar() {\r\n if (this.campos != null && this.campos.length > 0){\r\n this.campos.forEach(campo => {\r\n campo.valor = null;\r\n campo.resaltado = false;\r\n campo.mensajeFuncion = null;\r\n })\r\n }\r\n }\r\n \r\n validarVisibilidadCampos(campo: CampoFormularioModel): boolean {\r\n\r\n if ((campo.tipo == 'N' && campo.editable == 'N')) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n editarPermisoCamposPorIdGrupo(idGrupo: string, permisoCampo: string) {\r\n this.campos.forEach(campo => {\r\n if (idGrupo != campo.idGrupoPertenece || campo.editable == 'L') {\r\n return;\r\n }\r\n campo.editable = permisoCampo;\r\n })\r\n }\r\n\r\n getCambios(): Cambio[] {\r\n const cambios: Cambio[] = [];\r\n for (const campo of this.campos) {\r\n if (campo.isCambio()) {\r\n cambios.push(new Cambio(campo.original, campo.valor, campo));\r\n }\r\n }\r\n return cambios;\r\n }\r\n\r\n removerCamposIdGrupo(idGrupo: string) {\r\n var camposRemover: CampoFormularioModel[] = [];\r\n this.campos.forEach(campo => {\r\n if (idGrupo != campo.idGrupoPertenece) {\r\n return;\r\n }\r\n camposRemover.push(campo);\r\n })\r\n this.campos = this.campos.filter(obj => !camposRemover.some(objEliminar => objEliminar.campo === obj.campo));\r\n\r\n }\r\n\r\n}\r\n","<p-table [value]=\"campos\">\r\n <ng-template pTemplate=\"body\" let-campo>\r\n <tr *ngIf=\"validarVisibilidadCampos(campo)\">\r\n <td style=\"width: 20%;\">\r\n <label *ngIf=\"campo.editable != 'N'\" [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [class]=\"campo.tipo == 'I' ? 'font-bold color-400 mt-7' : ''\">\r\n {{ campo.descripcion }} \r\n <ng-container *ngIf=\"campo.editable != 'N' && campo.obligatorio\">*</ng-container>\r\n </label>\r\n </td>\r\n <td style=\"width: 80%\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div [ngClass]=\"campo.ayuda && campo.editable != 'N' ? 'col-11' : 'col-12'\">\r\n <!--campo tipo FECHA-->\r\n <p-calendar\r\n class=\"w-full\"\r\n appendTo=\"body\" \r\n type=\"text\"\r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n dateFormat=\"dd/mm/yy\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n *ngIf=\"campo.tipo == 'F' && campo.editable != 'N'\"\r\n [showIcon]=\"true\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n \r\n ></p-calendar>\r\n\r\n <!--campo tipo HORA-->\r\n <p-calendar\r\n class=\"w-full\"\r\n appendTo=\"body\" \r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n *ngIf=\"campo.tipo == 'X' && campo.editable != 'N'\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n ></p-calendar>\r\n\r\n <!--campo tipo HORA VALOR-->\r\n <input\r\n pInputText\r\n type=\"time\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n *ngIf=\"campo.tipo == 'Z' && campo.editable != 'N'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n />\r\n\r\n <!--campo tipo TEXTO-->\r\n <input\r\n pInputText\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n *ngIf=\"campo.tipo == 'T' && campo.editable != 'N'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n />\r\n\r\n <!--campo tipo AREA TEXTO-->\r\n <textarea\r\n pInputTextarea\r\n [(ngModel)]=\"campo.valor\"\r\n rows=\"5\"\r\n cols=\"5\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n *ngIf=\"campo.tipo == 'A' && campo.editable != 'N'\"\r\n class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n >\r\n </textarea>\r\n\r\n <!--campo tipo NUMERO-->\r\n <p-inputNumber\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n [maxlength]=\"campo.longitud\"\r\n *ngIf=\"campo.tipo == 'N' && campo.editable != 'N'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n >\r\n </p-inputNumber>\r\n\r\n <!--campo tipo DECIMAL-->\r\n <p-inputNumber\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n *ngIf=\"campo.tipo == 'D' && campo.editable != 'N'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n >\r\n </p-inputNumber>\r\n\r\n <!--campo tipo SECRET-->\r\n <p-password\r\n [feedback]=\"false\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n [tabIndex]=\"campo.orden + 1\"\r\n *ngIf=\"campo.tipo == 'S' && campo.editable != 'N'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n ></p-password>\r\n\r\n <!--campo tipo COMBO-->\r\n <p-dropdown\r\n class=\"w-full\"\r\n appendTo=\"body\"\r\n [options]=\"campo.lista\"\r\n [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n *ngIf=\"campo.tipo == 'C' && campo.editable != 'N'\"\r\n [showClear]=\"!campo.obligatorio\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n >\r\n </p-dropdown>\r\n\r\n <!--campo tipo LOGICO-->\r\n <div *ngIf=\"campo.tipo == 'L' && campo.editable != 'N'\">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div *ngFor=\"let valor of listaSiNoRadioButton\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\r\n <p-radioButton\r\n [inputId]=\"valor.key\"\r\n name=\"valor\"\r\n [value]=\"valor.key\"\r\n [label]=\"valor.name\"\r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n ></p-radioButton>\r\n <label> </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--campo tipo RADIO-->\r\n <div *ngIf=\"campo.tipo == 'R' && campo.editable != 'N'\">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div *ngFor=\"let valor of campo.lista\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\r\n <p-radioButton\r\n [inputId]=\"valor.value\"\r\n name=\"valor\"\r\n [value]=\"valor.value\"\r\n [label]=\"valor.label\"\r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n ></p-radioButton>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--campo tipo CHECKBOX-->\r\n <div *ngIf=\"campo.tipo == 'H' && campo.editable != 'N'\">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-3 field-checkbox\">\r\n <p-checkbox\r\n [inputId]=\"valor.value\"\r\n name=\"valor\"\r\n [value]=\"valor\"\r\n [(ngModel)]=\"campo.valor\"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n ></p-checkbox>\r\n <label [for]=\"valor.value\">{{ valor.label }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--campo tipo AUTOCOMPLETAR-->\r\n <p-autoComplete\r\n *ngIf=\"\r\n (campo.tipo == 'O' || campo.tipo == 'Y') && campo.editable != 'N'\r\n \"\r\n [disabled]=\"!editable || campo.editable == 'L'\"\r\n [(ngModel)]=\"campo.valor\"\r\n [suggestions]=\"campo.listaAutocompleteFiltrada\"\r\n (completeMethod)=\"campo.filtrarAutocomplete($event)\"\r\n field=\"label\"\r\n [dropdown]=\"true\"\r\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\r\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\r\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\r\n >\r\n <ng-template let-valor pTemplate=\"item\">\r\n <div>\r\n <div>{{ valor.label }}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n\r\n <!--campo tipo POPUP-->\r\n <div class=\"field\" *ngIf=\"campo.tipo == 'P' && campo.editable != 'N'\" >\r\n <ng-container *ngFor=\"let item of campo.listaPopups\" [hash]=\"item\"></ng-container>\r\n </div>\r\n <div *ngIf=\"verMensajeFuncion\" class=\"text-center w-1\">\r\n <label>{{ campo.mensajeFuncion }}</label>\r\n </div>\r\n <div *ngIf=\"isMensaje\">\r\n <label *ngIf=\"campo.mensaje\">{{ campo.mensaje }}</label>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"campo.ayuda && campo.editable != 'N'\" class=\"col-1 contenedor\" >\r\n <span\r\n class=\"w-1rem\"\r\n style=\"color: var(--color-400)\"\r\n tooltipStyleClass=\"tw-250\"\r\n [hideDelay]=\"1800\"\r\n pTooltip=\"{{ campo.ayuda }}\"\r\n tooltipPosition=\"top\"\r\n *ngIf=\"campo.ayuda && campo.editable != 'N'\"\r\n ><i class=\"pi pi-question-circle\"></i\r\n ></span>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>","import jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport * as FileSaver from 'file-saver';\r\nimport { Workbook } from 'exceljs';\r\n\r\nexport class DataExporter {\r\n\r\n constructor() { }\r\n\r\n exportPdf(lista: any[], exportColumns: any[], nombreArchivo: string) {\r\n console.log(lista);\r\n const doc = new jsPDF('p', 'pt');\r\n doc['autoTable'](exportColumns, lista);\r\n doc.save(nombreArchivo + \".pdf\");\r\n }\r\n\r\n async exportExcel(lista: any[], nombreArchivo: string) {\r\n const workbook = new Workbook();\r\n const worksheet = workbook.addWorksheet('data');\r\n\r\n worksheet.columns = Object.keys(lista[0]).map(key => ({ header: key, key }));\r\n\r\n lista.forEach(item => {\r\n worksheet.addRow(item);\r\n });\r\n\r\n const buffer = await workbook.xlsx.writeBuffer();\r\n this.saveAsExcelFile(buffer, nombreArchivo);\r\n }\r\n\r\n async exportExcelColumnas(lista: any[], nombreArchivo: string, columnas: string[], nombreHoja?: string) {\r\n const workbook = new Workbook();\r\n const worksheet = workbook.addWorksheet(nombreHoja ? nombreHoja : 'data');\r\n\r\n worksheet.columns = columnas.map(col => ({ header: col, key: col }));\r\n\r\n lista.forEach(item => {\r\n const filteredItem: any = {};\r\n columnas.forEach(col => {\r\n filteredItem[col] = item[col];\r\n });\r\n worksheet.addRow(filteredItem);\r\n });\r\n\r\n const buffer = await workbook.xlsx.writeBuffer();\r\n this.saveAsExcelFile(buffer, nombreArchivo);\r\n }\r\n\r\n saveAsExcelFile(buffer: any, fileName: string): void {\r\n const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n const EXCEL_EXTENSION = '.xlsx';\r\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\r\n FileSaver.saveAs(data, `${fileName}${EXCEL_EXTENSION}`);\r\n }\r\n\r\n exportCSV(lista: any[], columnas: string[], nombreArchivo: string) {\r\n const listaParaExportar = lista;\r\n const csvContent = this.convertirAFormatoCSV(listaParaExportar, columnas );\r\n this.descargarArchivoCSV(csvContent, nombreArchivo);\r\n }\r\n\r\n convertirAFormatoCSV(data: any[], columns: string[]) {\r\n const csvHeader = columns.join(',') + '\\n';\r\n const csvRows = data.map(item => columns.map(col => item[col]).join(',')).join('\\n');\r\n return csvHeader + csvRows + '\\n';\r\n }\r\n\r\n descargarArchivoCSV(csvContent: any, nombreArchivo: string) {\r\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', `${nombreArchivo}.csv`);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { RecursoPuntoModel } from '../../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { FuenteGeneralModel } from '../../../../seguridad/modelos/FuenteGeneralModel';\r\nimport { FuenteProcesoGeneralModel } from '../../../../seguridad/modelos/FuenteProcesoGeneralModel';\r\nimport { ListaServicioModel } from '../../../../seguridad/modelos/ListaServicioModel';\r\nimport { GrupoFuenteModel } from '../../../../seguridad/modelos/GrupoFuenteModel';\r\nimport { FuenteCampoAtributoModel } from '../../../../seguridad/modelos/FuenteCampoAtributoModel';\r\nimport { FuenteEntradaModel } from '../../../../seguridad/modelos/FuenteEntradaModel';\r\nimport { CruceRecursoPuntoModel } from '../../../../seguridad/modelos/CruceRecursoPuntoModel';\r\nimport { TableColumn } from '../../../../core/modelos/table-column.model';\r\nimport { CargueLineaModel } from '../../../../seguridad/modelos/CargueLineaModel';\r\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\r\nimport { CargueLineaService } from '../../../services/carguelinea.service';\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { CampoFormularioModel } from '../../../../core/componentes/formulariodinamico/objetosformulario/CampoFormulario';\r\nimport { FormulariodinamicoComponent } from '../../../../core/componentes/formulariodinamico/formulariodinamico.component';\r\nimport { Table, TableModule } from 'primeng/table';\r\nimport { DataExporter } from '../../../../core/servicios/data-exporter-table.utils';\r\nimport { MenuService } from '../../../../core/servicios/menu.service';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { ParametrosNavegacionService } from '../../../../shared/servicios/parametros-navegacion.service';\r\nimport { FileSelectEvent, FileUploadModule } from 'primeng/fileupload';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-importar-fuente-con',\r\n imports: [TableModule, ConfirmPopupModule, InputTextModule, TranslateModule, CheckboxModule, TabViewModule, TablaGeneralComponent, FiltroGeneralComponent, AccordionModule, DatePipe, ButtonModule, CheckboxModule, FormulariodinamicoComponent, FileUploadModule, FormsModule, FuentePipe, FormsModule, ReactiveFormsModule, CommonModule,],\r\n standalone : true,\r\n templateUrl: './importar-fuente-con.component.html',\r\n styleUrls: ['./importar-fuente-con.component.scss'],\r\n providers: [DataExporter, MessageService, ConfirmationService]\r\n})\r\nexport class ImportarFuenteConComponent implements OnInit {\r\n\r\n public columns: TableColumn[] = [];\r\n public filters : any[] = [];\r\n public paginadorFuente: any[] = [];\r\n public paginadorGrupos: any[] = [];\r\n public paginadorServicios: any[] = [];\r\n public paginadorCampos: any[] = [];\r\n public paginadorLineas: any[] = [];\r\n public paginadorParametros: any[] = [];\r\n public paginadorProcesos: any[] = [];\r\n public fuenteDTO: FuenteGeneralModel = new FuenteGeneralModel;\r\n public procesoDTO: FuenteProcesoGeneralModel;\r\n public fuente: string;\r\n public panel: string;\r\n public panelImportar: string;\r\n public puntoProceso: string;\r\n public verFormulario: boolean = false;\r\n public procesarDatos: boolean;\r\n public ejecutarDatos: boolean;\r\n public consultarPorRecurso: boolean;\r\n public mostrar: boolean;\r\n public verBotonEjecutar: boolean;\r\n public nombreArchivo: string;\r\n public rutaArchivo: string;\r\n public servicios: ListaServicioModel[] = [];\r\n public grupo: GrupoFuenteModel;\r\n public servicio: any;\r\n public lineaFuente: any;\r\n public progreso: number;\r\n public parametrosPunto: FuenteCampoAtributoModel[]=[];\r\n //pte form\r\n public accion: any;\r\n public entradas: FuenteCampoAtributoModel[]=[];\r\n public lineasCargadas: CargueLineaModel[]=[];\r\n\tpublic lineasInconsistencia: CargueLineaModel[]=[];\r\n public verInconsistencia: boolean;\r\n\tpublic lineasSinMensaje: number;\r\n\tpublic lineasConMensaje: number;\r\n public datos: GrupoFuenteModel[]=[];\r\n public llaveProcesoCargueFuenteBD: string;\r\n public campos: CampoFormularioModel[] = [];\r\n public cols:any[]\r\n public exportColumns: any[];\r\n public estadoRegresar: string = null;\r\n public columnasExportExcel = ['codigo', 'unicaLinea', 'mensajeErrores'];\r\n\r\n\r\n public paginator = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n public loadingPaginadorFuente: boolean = false;\r\n public archivoSeleccionado: any;\r\n public regresarPuntoProceso: string = null;\r\n\r\n public camposArchivo: any[] = []\r\n\r\n public ACCION = {\r\n IMPORTAR : 'procesando el archivo',\r\n EJECUTAR: 'Ejecutando los Servicios',\r\n VER: 'Consultando',\r\n DIRECTO: 'Procesando archivo-servicios',\r\n }\r\n\r\n public PANEL = {\r\n IMPORTAR: 'IMPORTAR',\r\n DATOS: 'DATOS',\r\n GRUPOS: 'GRUPOS',\r\n DETALLEGRUPO: 'DETALLEGRUPO'\r\n }\r\n @Output() public regresarFuente: EventEmitter<any> = new EventEmitter();\r\n @ViewChild('formulario') formulario: FormulariodinamicoComponent;\r\n @ViewChild('tablaDatos') tabla: Table;\r\n @ViewChild('tablaDatos2') tabla2: Table;\r\n\r\n\r\n constructor(private generalService: GeneralService,\r\n public dataExporter: DataExporter,\r\n private authService: AuthService,\r\n private fuentePipe: FuentePipe,\r\n private cargueLineaService: CargueLineaService,\r\n private notificacionesService: ToastService,\r\n private confirmationService: ConfirmationService,\r\n private menuService: MenuService,\r\n private generalPipe: GeneralPipe,\r\n public utilsService: UtilsService,\r\n private parametrosNavegacionService: ParametrosNavegacionService,\r\n private translateService : TranslateService) {}\r\n\r\n ngOnInit(): void {\r\n this.camposArchivo = [{descripcion: this.translateService.instant('nombrearchivo') + '*'}]\r\n this.verBotonEjecutar = false;\r\n this.lineasCargadas = [];\r\n this.lineasInconsistencia = [];\r\n this.columns = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('fuente'),\r\n width: 100,\r\n },\r\n ];\r\n this.filters = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }\r\n ];\r\n this.crearColumnasExportar()\r\n if (this.parametrosNavegacionService.getParametros()){\r\n this.regresarPuntoProceso = this.parametrosNavegacionService.getParametros().regresar; \r\n this.cargar(this.parametrosNavegacionService.getParametros().fuente);\r\n }\r\n }\r\n\r\n crearColumnasExportar() {\r\n this.cols = [\r\n { field: 'codigo', header: this.translateService.instant('grupo'), customExportHeader: 'Prueba' },\r\n { field: 'unicaLinea', header: this.translateService.instant('linea') },\r\n { field: 'mensajeErrores', header: this.translateService.instant('advertencia') },\r\n ];\r\n\r\n this.exportColumns = this.cols.map(col => ({ title: col.header, dataKey: col.field }));\r\n }\r\n\r\n traerFuente() {\r\n if (!this.parametrosNavegacionService.getParametros()){\r\n this.fuenteDTO = null;\r\n this.consultarPorRecurso = false;\r\n //iniciar();\r\n }\r\n }\r\n\r\n async cargarlistado(event){\r\n this.loadingPaginadorFuente = true;\r\n var objeto = {\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows,\r\n login: this.authService.getTokenKey('usuario'),\r\n rol: this.authService.getTokenKey('aliasRol'),\r\n puntoProceso: this.consultarPorRecurso ? this.puntoProceso : null,\r\n fuenteGeneral: this.consultarPorRecurso ? null : 'S',\r\n aplicacion: this.consultarPorRecurso ? null : this.authService.getTokenKey('aplicacion').padEnd(10),\r\n descripcion: event.filters?.descripcion?.value ? '%' + event.filters?.descripcion?.value + '%' : null\r\n }\r\n this.generalService.queryForList(new GeneralModel('FuenteGeneralDTO', null, false, objeto)).subscribe(data => {\r\n this.paginadorFuente = data;\r\n this.loadingPaginadorFuente = false;\r\n this.generalService.cantidadRegistros(new GeneralModel('FuenteGeneralDTO', null, false, objeto)).subscribe(data => {\r\n this.paginator.totalRecords = data;\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n })\r\n }\r\n\r\n cargar(event){\r\n this.archivoSeleccionado = null;\r\n this.regresarFuente.emit(false)\r\n this.fuenteDTO = event;\r\n this.menuService.setBreadcrumb([{ label: 'Lista Fuentes de Importación', command: (event) =>{\r\n location.reload()\r\n }}, { label: 'Detalle Fuentes de Importación' }]);\r\n this.nuevoProceso().then(data => {\r\n if (this.isMotor()){\r\n this.prepararCamposParaImportar().then(data => {this.utilsService.resizeWindowIFrame();});\r\n }\r\n this.utilsService.resizeWindowIFrame();\r\n });\r\n }\r\n\r\n async nuevoProceso() {\r\n this.verBotonEjecutar = true;\r\n this.procesoDTO = new FuenteProcesoGeneralModel();\r\n this.procesoDTO.fuente = this.fuenteDTO.llaveTabla;\r\n this.procesoDTO.usuario = this.authService.getTokenKey('usuario');\r\n this.procesoDTO.fechaProceso = new Date();\r\n await this.prepararCamposParaImportar();\r\n }\r\n\r\n async prepararCamposParaImportar() {\r\n\t\tthis.panel = 'IMPORTAR';//PANEL.IMPORTAR.getPanel();\r\n\t\tthis.rutaArchivo = null;\r\n\t\tthis.nombreArchivo = null;\r\n\t\tthis.mostrar = true;\r\n await this.cargarFormularioCamposEntrada()\r\n }\r\n\r\n async cargarFormularioCamposEntrada(){\r\n await this.cargarParametrosPuntoProceso()\r\n this.campos = await this.camposEntrada(this.fuenteDTO, this.parametrosPunto);\r\n if (this.campos == null || this.campos.length <= 0) {\r\n\t\t\tthis.verFormulario = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.verFormulario = true;\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n\r\n async camposEntrada(fuente: FuenteGeneralModel, parametrosPunto: FuenteCampoAtributoModel[]) {\r\n if (fuente == null) {\r\n return null;\r\n }\r\n var retorno: CampoFormularioModel[] = [];\r\n var entradas: FuenteEntradaModel[] = await this.generalService.queryForList(new GeneralModel('FuenteEntradaDTO', null, false, {fuente: fuente.llaveTabla})).toPromise();\r\n if (entradas == null || entradas.length <= 0) {\r\n return null;\r\n }\r\n entradas: for (let i = 0; i < entradas.length ; i++) {\r\n var element = entradas[i] \r\n ;for (let j = 0; j < parametrosPunto.length; j++) {\r\n var puntoproceso = parametrosPunto[j]\r\n if (puntoproceso.campoAtributo == element.descripcion) {\r\n continue entradas;\r\n }\r\n }\r\n var dato = new FuenteCampoAtributoModel();\r\n dato.campoAtributo = element.descripcion;\r\n var editable: string = null;\r\n if (element.tipoDato == this.fuentePipe.LLAVE) {\r\n element.tipoDato = this.fuentePipe.TEXTO;\r\n dato.cadena = this.utilsService.generarLlave();\r\n editable = \"N\";\r\n }\r\n dato.tipoDato = element.tipoDato;\r\n var campo = new CampoFormularioModel(element.tipoDato, element.descripcion,\r\n this.determinarLongitud(element.tipoDato), 0, element.descripcion,\r\n element.obligatorio == 'S', null, null, editable);\r\n campo.dato = dato;\r\n if (dato.tipoDato == this.fuentePipe.TEXTO || dato.tipoDato == this.fuentePipe.LOGICO) {\r\n campo.valor = dato.cadena;\r\n } else if (dato.tipoDato == this.fuentePipe.NUMERO) {\r\n campo.valor = dato.numero;\r\n } else if (dato.tipoDato == this.fuentePipe.DECIMAL) {\r\n campo.valor = dato.numero;\r\n campo.decimales = 2;\r\n } else if (dato.tipoDato == this.fuentePipe.FECHA) {\r\n if (element.valorDefecto != null) {\r\n dato.formato = \"yyyy/MM/dd\";\r\n campo.valor = new Date(this.obtenerValorMarcador(element.valorDefecto));\r\n } else {\r\n campo.valor = dato.fecha;\r\n }\r\n }\r\n campo.caracteristica = true;\r\n retorno.push(campo);\r\n }\r\n return retorno;\r\n}\r\n\r\nobtenerValorMarcador(valorEntrada: string) {\r\n if (valorEntrada == null || valorEntrada.trim().length <= 0 || valorEntrada.trim() == \"null\") {\r\n return valorEntrada;\r\n }\r\n if (valorEntrada.toUpperCase().includes(\"ANNOHOY\") || valorEntrada.toUpperCase().includes(\"MESHOY\")) {\r\n var formulaCampo = valorEntrada.toUpperCase();\r\n var hoy = new Date();\r\n formulaCampo = formulaCampo.replace(\"ANNOHOY\", hoy.getFullYear().toString());\r\n formulaCampo = formulaCampo.replace(\"MESHOY\", (hoy.getMonth() + 1).toString());\r\n return formulaCampo;\r\n }\r\n return valorEntrada;\r\n}\r\n\r\ndeterminarLongitud(tipoDato: string) {\r\n if (tipoDato == null) {\r\n return 0;\r\n }\r\n if (this.fuentePipe.TEXTO == tipoDato) {\r\n return 100;\r\n }\r\n if (this.fuentePipe.LOGICO == tipoDato) {\r\n return 5;\r\n }\r\n return 20;\r\n}\r\n\r\n async cargarParametrosPuntoProceso(){\r\n this.parametrosPunto = [];\r\n\t\tif (this.puntoProceso == null || this.puntoProceso.trim().length <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// consulta los campos del cruce entre el punto proceso y la fuente\r\n var consultar: RecursoPuntoModel = new RecursoPuntoModel();\r\n\t\tconsultar.puntoProceso = this.puntoProceso;\r\n\t\tconsultar.fuente = this.fuenteDTO.llaveTabla;\r\n\t\tconsultar = await this.generalService.queryForObject(new GeneralModel('RecursoPuntoDTO', null, false, consultar)).toPromise();\r\n\t\tif(consultar==null){\r\n\t\t\tthis.notificacionesService.showError(\"No existe el recurso punto para ese punto del proceso y fuente\");\r\n return;\r\n\t\t}\r\n var cruces: CruceRecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {\r\n recursoPunto: consultar.llaveTabla\r\n })).toPromise()\r\n\t\tcruces.forEach(async cruce => {\r\n\t\t\t\t// buscamos que exista todavia el campo como entrada de la\r\n\t\t\t\t// fuente\r\n\t\t\t\tvar buscarEntrada: FuenteEntradaModel = new FuenteEntradaModel();\r\n\t\t\t\tbuscarEntrada.llaveTabla = cruce.fuenteEntrada;\r\n\t\t\t\tbuscarEntrada = await this.generalService.queryForObject(new GeneralModel('FuenteEntradaDTO', null, false, buscarEntrada)).toPromise();\r\n\t\t\t\tif (buscarEntrada == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// obtenemos el valor y lo convertimos al a un atributo de la\r\n\t\t\t\t// fuente para que se use en los servicios\r\n\t\t\t\tvar dato = new FuenteCampoAtributoModel();\r\n\t\t\t\tdato.campoAtributo = buscarEntrada.descripcion;\r\n\t\t\t\tdato.fuenteEntrada = buscarEntrada.llaveTabla;\r\n\t\t\t\tdato.tipoDato = buscarEntrada.tipoDato;\r\n this.parametrosPunto.push(dato);\r\n\t\t\t\t//FIXME: Pendiente obtener valor de punto\r\n /*Object valor = fc.getApplication().createValueBinding(\"#{\" + cruce.getAtributoPuntoValor() + \"}\")\r\n\t\t\t\t\t\t.getValue(fc);\r\n\t\t\t\tif (valor == null) {\r\n\t\t\t\t\tparametrosPunto.add(dato);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (dato.tipoDato == this.fuentePipe.TEXTO || dato.tipoDato == this.fuentePipe.LOGICO) {\r\n\t\t\t\t\tdato.cadena = valor.toString();\r\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.DECIMAL) {\r\n\t\t\t\t\tdato.cadena = parseInt(valor);\r\n\t\t\t\t\tdato.setNumero((BigDecimal) valor);\r\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.NUMERO) {\r\n\t\t\t\t\tdato.setCadena(((Integer) valor).toString());\r\n\t\t\t\t\tdato.setNumero(new BigDecimal((Integer) valor));\r\n\t\t\t\t} else if (dato.tipoDat == this.fuentePipe.FECHA) {\r\n\t\t\t\t\tdato.setCadena(((Date) valor).toString());\r\n\t\t\t\t\tdato.setFecha((Date) valor);\r\n\t\t\t\t}\r\n\t\t\t\tparametrosPunto.add(dato);*/\r\n\t\t\t})\r\n\t\t\r\n }\r\n\r\n cargarArchivo(data: FileSelectEvent, fubauto) {\r\n this.archivoSeleccionado = data.files[0];\r\n this.readFile(this.archivoSeleccionado);\r\n this.notificacionesService.showSuccess('Se cargó el documento con éxito');\r\n fubauto.clear();\r\n }\r\n\r\n private readFile(file: File) {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsText(file);\r\n this.nombreArchivo = file.name;\r\n }\r\n\r\n importar(){\r\n \r\n if (this.formulario){\r\n if (!this.formulario?.validar()){\r\n this.notificacionesService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n }\r\n this.verInconsistencia = false;\r\n this.accion = this.ACCION.IMPORTAR;\r\n this.estadoRegresar = 'volverImportar'\r\n this.run();\r\n }\r\n \r\n ejecutar(){\r\n this.verBotonEjecutar = false;\r\n this.accion = this.ACCION.EJECUTAR;\r\n this.run();\r\n }\r\n\r\n regresarDatos() {\r\n if (this.panelImportar == this.PANEL.GRUPOS) {\r\n this.regresarFuente.emit(false);\r\n this.nombreArchivo = null;\r\n } else if (this.panelImportar == this.PANEL.DETALLEGRUPO) {\r\n this.panelImportar = this.PANEL.GRUPOS;\r\n }\r\n this.estadoRegresar = 'volverImportar'\r\n }\r\n\r\n run(){\r\n var retorno;\r\n this.cargueLineaService.ejecutar(this.accion, this.archivoSeleccionado, this.fuenteDTO, this.procesoDTO, this.entradas, this.campos, this.datos, this.lineasCargadas).subscribe(data => {\r\n if (data.type === HttpEventType.Response) {\r\n let response: any = data.body\r\n this.datos = response?.datos ? response?.datos : this.datos;\r\n this.procesarDatos = response?.procesarDatos ? response?.procesarDatos : this.procesarDatos;\r\n this.lineasCargadas = response?.lineasCargadas ? response?.lineasCargadas : this.lineasCargadas;\r\n //this.panel = response?.panel ? response?.panel : this.panel;\r\n //this.panelImportar = response?.panelImportar ? response?.panelImportar : this.panelImportar;\r\n this.verBotonEjecutar = response?.verBotonEjecutar ? response?.verBotonEjecutar : this.verBotonEjecutar;\r\n this.procesoDTO = response?.procesoDTO ? response?.procesoDTO : this.procesoDTO;\r\n retorno = response?.retorno;\r\n //pte pasar al back\r\n this.grupo = null; \r\n\t\t \tthis.panel = response?.panel ? response?.panel : this.panel;//PANEL.DATOS.getPanel();\r\n this.panelImportar = response?.panelImportar ? response?.panelImportar : this.panelImportar;//PANEL.GRUPOS.getPanel();\r\n this.notificacionesService.showSuccess(response.mensaje)\r\n if (this.isMotor()){\r\n this.setResultadoCargue()\r\n }\r\n }\r\n })\r\n }\r\n\r\n setResultadoCargue() {\r\n\t\tthis.lineasInconsistencia = [];\r\n\t\tthis.lineasSinMensaje = 0;\r\n\t\tthis.lineasConMensaje = 0;\r\n\t\tif ( this.ACCION.EJECUTAR == this.accion ) {\r\n\t\t\tthis.lineasCargadas.forEach(unaLinea => {\r\n\t\t\t\tif ( unaLinea.mensaje != null) {\r\n\t\t\t\t\tthis.lineasInconsistencia.push(unaLinea);\r\n\t\t\t\t\tthis.lineasConMensaje ++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.lineasSinMensaje ++;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tthis.verInconsistencia = true;\r\n\t\t\tif ( this.lineasConMensaje == 0) {\r\n\t\t\t\tthis.verInconsistencia = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n importarNuevamente(){\r\n this.verBotonEjecutar = true;\r\n this.nombreArchivo = null;\r\n this.archivoSeleccionado = null;\r\n this.estadoRegresar = null;\r\n this.prepararCamposParaImportar().then(data => {})\r\n }\r\n\r\n verGrupo(event){\r\n this.estadoRegresar = 'regresarImportar'\r\n this.grupo = event.data\r\n this.datos.forEach(grupoFuente =>{\r\n if (grupoFuente.llaveLineaGrupo == this.grupo.llaveLineaGrupo) {\r\n this.paginadorLineas = grupoFuente.lineas;\r\n }\r\n })\r\n this.paginadorServicios = this.grupo.servicios\r\n //this.paginadorCampos = \r\n //this.paginadorParametros = []\r\n if ((this.paginadorServicios == null || this.paginadorServicios?.length <= 0)\r\n && (this.paginadorLineas == null || this.paginadorLineas?.length <= 0)){\r\n this.notificacionesService.showSuccess('El grupo no posee niguna linea ni servicio')\r\n return;\r\n }\r\n this.paginadorParametros = []\r\n this.paginadorServicios.forEach(data =>{\r\n this.verServicio(data)\r\n })\r\n this.paginadorCampos = []\r\n this.paginadorLineas.forEach(data => {\r\n this.verLinea(data)\r\n })\r\n this.panelImportar = this.PANEL.DETALLEGRUPO\r\n }\r\n\r\n verLinea(event){\r\n event.camposAtributos.forEach(data => {\r\n data['numeroLinea'] = event.numeroLinea\r\n })\r\n if (event.camposAtributos == null || event.camposAtributos.length <= 0) {\r\n this.notificacionesService.showSuccess(\"No se identifico ningún campo\");\r\n } else {\r\n this.paginadorCampos = this.paginadorCampos.concat(event.camposAtributos)\r\n }\r\n \r\n }\r\n\r\n verServicio(event){\r\n event.camposAtributos.forEach(data => {\r\n data['llaveunica'] = `${this.translateService.instant('servicio')}: ${event.servicio} \r\n ${this.translateService.instant('orden')}: ${event.orden}\r\n ${this.translateService.instant('linea')}: ${event.numeroLinea} `\r\n if (event.mensaje) {\r\n data['llaveunica'] = data['llaveunica'] + `\r\n ${this.translateService.instant('advertencia')}: ${event.mensaje} `\r\n }\r\n })\r\n if (event.camposAtributos == null || event.camposAtributos.length <= 0) {\r\n this.notificacionesService.showSuccess(\"No se identifico ningún parametro\");\r\n } else {\r\n this.paginadorParametros = this.paginadorParametros.concat(event.camposAtributos)\r\n }\r\n }\r\n\r\n cancelarProceso(){\r\n console.log('entra cancelaProceso')\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: '¿Desea eliminar el registro?',\r\n acceptLabel: 'Si',\r\n icon: 'confirmar',\r\n accept: () => {\r\n this.cargueLineaService.cancelarProceso({procesoDTO: this.procesoDTO}).subscribe(data => {\r\n if (data.mensaje <= 0) {\r\n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n }\r\n this.procesoDTO = new FuenteProcesoGeneralModel();\r\n \r\n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.rutaArchivo = null;\r\n this.nombreArchivo = null;\r\n location.reload() \r\n })\r\n }\r\n })\r\n }\r\n\r\n importarEjecutar(){\r\n\r\n }\r\n\r\n isMotor() {\r\n\t\treturn this.fuenteDTO != null && (this.fuentePipe.BASEDATOS == this.fuenteDTO.motor || this.fuentePipe.BASEDATOSEGUNDO == this.fuenteDTO.motor);\r\n\t}\r\n\r\n isServicioWeb() {\r\n\t\treturn this.fuenteDTO != null && this.fuenteDTO.proceso != null && this.fuenteDTO.formulaDescripcion != null;\r\n\t}\r\n\r\n isImportacion() {\r\n\t\treturn this.ACCION.IMPORTAR == this.accion;\r\n\t}\r\n\r\n\tisEjecucion() {\r\n\t\treturn this.ACCION.EJECUTAR == this.accion;\r\n\t}\r\n\r\n\tisAgrupamiento() {\r\n\t\treturn this.fuenteDTO != null && this.fuentePipe.AGRUPAMIENTO == this.fuenteDTO.tipo;\r\n\t}\r\n\r\n\tisRompimiento() {\r\n\t\treturn this.fuenteDTO != null && this.fuentePipe.ROMPIMIENTO == this.fuenteDTO.tipo;\r\n\t}\r\n\r\n\tisUnicoRegistro() {\r\n\t\treturn this.fuenteDTO != null && this.fuentePipe.UNICO_REGISTRO == this.fuenteDTO.tipo;\r\n\t}\r\n\r\n\tisSinSeparador() {\r\n\t\treturn this.fuenteDTO != null && this.fuentePipe.SIN_SEPARADOR == this.fuenteDTO.separador;\r\n\t}\r\n\r\n\tisConSeparador() {\r\n\t\treturn this.fuenteDTO != null && this.fuenteDTO.separador != null && this.fuenteDTO.separador != this.fuentePipe.SIN_SEPARADOR;\r\n\t}\r\n\r\n}\r\n","<p-confirmPopup></p-confirmPopup>\r\n<div *ngIf=\"!mostrar\">\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\r\n autocomplete=\"off\" />\r\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n </div>\r\n <app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"paginadorFuente\" [rows]=\"paginator.rows\"\r\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"cargarlistado($event)\" (onRowSelect)=\"cargar($event)\"\r\n [loading]=\"loadingPaginadorFuente\"></app-tabla-general>\r\n</div>\r\n<div *ngIf=\"mostrar\">\r\n <div class=\"card mt-3\" *ngIf=\"fuenteDTO != null\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\r\n <div class=\"Inputgroup p-fluid p-formgrid grid\">\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.descripcion\" [disabled]=\"true\" pInputText autofocus type=\"text\" />\r\n <label for=\"fuente\">{{'fuente' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" value=\"{{fuenteDTO.tipo | fuentePipe:'listaTipoFuente'}}\"\r\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\r\n <label for=\"tipo\">{{'tipo' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" value=\"{{fuenteDTO.separador | fuentePipe:'listaSeparador'}}\"\r\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\r\n <label for=\"separador\">{{'separador' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"procesoDTO != null\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" value=\"{{procesoDTO.fechaProceso | date: ('formatofecha' | translate) }}\"\r\n [disabled]=\"true\" pInputText autofocus type=\"text\" />\r\n <label for=\"fechaproceso\">{{'fechaproceso' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\" *ngIf=\"nombreArchivo != null && this.panel == 'DATOS' \">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"nombreArchivo\" [disabled]=\"true\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"nombrearchivo\">{{'nombrearchivo' | translate}}</label>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n<div *ngIf=\"panel =='IMPORTAR'\">\r\n <p-tabView>\r\n <p-tabPanel header=\"{{'entrada' | translate}}\" *ngIf=\"fuenteDTO != null\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"fuenteDTO?.motor == 'X'\">\r\n <div class=\"card mt-2 mb-2\">\r\n <div class=\"contenedor p-fluid grid mt-1 mb-1\">\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.estado\" [disabled]=\"true\" pInputText\r\n autofocus type=\"text\" />\r\n <label for=\"estado\">{{'estado' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteDTO.solicitaDetalle\" [disabled]=\"true\"\r\n pInputText autofocus type=\"text\" />\r\n <label for=\"detalle\">{{'detalle' | translate}}</label>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card mt-2 mb-2 field col-12 md:col-12 lg:col-12\" *ngIf=\"!isServicioWeb()\">\r\n\r\n <p-table [value]=\"camposArchivo\">\r\n <ng-template pTemplate=\"body\" let-campo>\r\n <tr>\r\n <td style=\"width: 20%;\">\r\n <label>{{campo.descripcion}}</label>\r\n </td>\r\n <td style=\"width: 80%\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"col-12 md:col-12\" id=\"btn-cargar-popup\">\r\n <div class=\"p-inputgroup\">\r\n <input pInputText [readonly]=\"true\" [value]=\"archivoSeleccionado?.name ? archivoSeleccionado?.name : ''\" disabled />\r\n <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\r\n (onSelect)=\"cargarArchivo($event, fubauto)\" ></p-fileUpload>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" \r\n [objeto]=\"fuenteDTO\" *ngIf=\"verFormulario && campos.length > 0\"></formulario-dinamico>\r\n \r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"m-2 p-button-outlined\"\r\n *ngIf=\"fuenteDTO.motor != 'X' && (isServicioWeb() || nombreArchivo != null)\" icon=\"pi pi-upload\"\r\n label=\"{{'link_importar' | translate}}\" (click)=\"importar()\">\r\n </button>\r\n <button pButton pRipple class=\"m-2 p-button p-button-raised\" *ngIf=\"fuenteDTO.motor =='X'\"\r\n label=\"{{'link_importarejecutar' | translate}}\" (click)=\"importarEjecutar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'historico' | translate}}\" *ngIf=\"paginadorProcesos.length > 0 && fuenteDTO != null\">\r\n\r\n </p-tabPanel>\r\n </p-tabView>\r\n</div>\r\n\r\n<div *ngIf=\"panel =='DATOS'\">\r\n\r\n <div class=\"card\" *ngIf=\"panelImportar =='GRUPOS'\">\r\n \r\n\r\n <div class=\"flex justify-content-between align-items-center mb-4 mt-3\">\r\n <div>\r\n \r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" icon=\"glyphicons glyphicons-play\"\r\n *ngIf=\"verBotonEjecutar && procesarDatos && (isImportacion() || isEjecucion())\"\r\n label=\"{{'link_ejecutar' | translate}}\" (click)=\"ejecutar()\">\r\n </button>\r\n <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" *ngIf=\"procesoDTO.llaveTabla != null\" icon=\"glyphicons glyphicons-bin\" \r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"cancelarProceso()\">\r\n </button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"tabla.exportCSV()\"\r\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-2 w-auto\" pTooltip=\"CSV\"\r\n tooltipPosition=\"bottom\"></button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\r\n (click)=\"dataExporter.exportExcelColumnas(tabla.filteredValue == null ? tabla.value : tabla.filteredValue , 'tabla', columnasExportExcel)\"\r\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\"\r\n tooltipPosition=\"bottom\"></button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\r\n (click)=\"dataExporter.exportPdf(tabla.filteredValue == null ? tabla.value : tabla.filteredValue , exportColumns, 'tabla')\"\r\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\r\n </div>\r\n </div>\r\n\r\n <p-table #tablaDatos responsiveLayout=\"scroll\" [value]=\"datos\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\r\n [rows]=\"10\" [totalRecords]=\"datos.length\" [exportFilename]=\"'tablaDatos'\"\r\n [paginator]=\"datos.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [columns]=\"cols\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" *ngIf=\"!isMotor()\"\r\n [(selection)]=\"grupo\" (onRowSelect)=\"verGrupo($event)\">\r\n \r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'grupo' | translate}}</th>\r\n <th>{{'linea' | translate}}</th>\r\n <th>{{'advertencia' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td class=\"w-8rem font-medium\">{{bean.codigo}}</td>\r\n <td>\r\n {{bean.unicaLinea}}</td>\r\n <td>\r\n {{bean.mensajeErrores}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div *ngIf=\"panelImportar =='DETALLEGRUPO'\">\r\n <div *ngIf=\"!isMotor()\">\r\n <h5>{{'grupo' | translate}}: {{grupo.codigo}}</h5>\r\n <p-accordion *ngIf=\"!isMotor()\">\r\n <p-accordionTab [selected]=\"true\">\r\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-book\"></i>{{'linea' | translate}} </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n \r\n <p-table responsiveLayout=\"scroll\" [value]=\"paginadorCampos\" responsiveLaoyout=\"scroll\"\r\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n rowGroupMode=\"subheader\" dataKey=\"numeroLinea\" groupRowsBy=\"numeroLinea\" expandableRowGroups=\"true\"\r\n *ngIf=\"paginadorCampos.length > 0\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'campo' | translate}}</th>\r\n <th>{{'archivo' | translate}}</th>\r\n <th>{{'tipo' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"groupheader\" let-bean let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n <tr>\r\n <td colspan=\"100\">\r\n <button type=\"button\" pButton pRipple [pRowToggler]=\"bean\"\r\n class=\"p-element p-ripple p-button-rounded mr-2 mb-2 p-button p-component p-button-desplegable p-button-icon-only\"\r\n [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"></button>\r\n \r\n <span class=\"font-bold ml-2\" style=\"line-height: 40px;\"> {{'linea' | translate}}:\r\n {{bean.numeroLinea}}</span>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.campoAtributo}}</td>\r\n <td>{{bean.cadena}}</td>\r\n <td>{{bean.tipoDato | fuentePipe : 'listaTipoDato'}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n </p-accordionTab>\r\n <p-accordionTab *ngIf=\"paginadorParametros?.length > 0\" >\r\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-book\"></i>{{'servicio' | translate}} </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n\r\n <p-table responsiveLayout=\"scroll\" [value]=\"paginadorParametros\" responsiveLaoyout=\"scroll\" \r\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n rowGroupMode=\"subheader\" dataKey=\"llaveunica\" groupRowsBy=\"llaveunica\" expandableRowGroups=\"true\"\r\n *ngIf=\"paginadorParametros.length > 0\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'parametro' | translate}}s</th>\r\n <th>{{'valor' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"groupheader\" let-bean let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\r\n <tr>\r\n <td colspan=\"100\">\r\n <button type=\"button\" pButton pRipple [pRowToggler]=\"bean\"\r\n class=\"p-element p-ripple p-button-rounded mr-2 mb-2 p-button p-component p-button-desplegable p-button-icon-only\"\r\n [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"></button>\r\n \r\n <span class=\"font-bold ml-2\" style=\"line-height: 40px;\">{{bean.llaveunica}}</span>\r\n <br/>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-bean>\r\n <tr>\r\n <td>{{bean.campoAtributo}}</td>\r\n <td>\r\n <label *ngIf=\"bean.tipoDato == 'L' || bean.tipoDato == 'T'\">{{bean.cadena}}</label>\r\n <label *ngIf=\"bean.tipoDato == 'D' || bean.tipoDato == 'N'\">{{bean.numero}}</label>\r\n <label *ngIf=\"bean.tipoDato == 'F'\">{{bean.cadena | date : ('formatofecha' | translate) }}</label>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n </p-accordionTab>\r\n </p-accordion>\r\n </div>\r\n <div *ngIf=\"isMotor()\">\r\n <div class=\"flex justify-content-between align-items-center mb-4 mt-3\">\r\n <div>\r\n \r\n </div>\r\n \r\n <div class=\"flex justify-content-end\">\r\n <div class=\"ml-2 mb-1 mt-2\" *ngIf=\"lineasConMensaje != 0\" >\r\n <p-checkbox class=\"ml-1\" [(ngModel)]=\"verInconsistencia\" [binary]=\"true\"> </p-checkbox>\r\n <label style=\"margin: 3px 8px;\"> {{'soloinconsistencias' | translate}}</label>\r\n </div>\r\n\r\n <button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" icon=\"glyphicons glyphicons-play\"\r\n *ngIf=\"verBotonEjecutar && procesarDatos && (isImportacion() || isEjecucion())\"\r\n label=\"{{'link_ejecutar' | translate}}\" (click)=\"ejecutar()\">\r\n </button>\r\n <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" *ngIf=\"procesoDTO.llaveTabla != null\" icon=\"glyphicons glyphicons-bin\" \r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"cancelarProceso()\">\r\n </button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"tabla2.exportCSV()\"\r\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-2 w-auto\" pTooltip=\"CSV\"\r\n tooltipPosition=\"bottom\"></button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\r\n (click)=\"dataExporter.exportExcel(tabla2.filteredValue == null ? tabla2.value : tabla2.filteredValue , 'tabla2')\"\r\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\"\r\n tooltipPosition=\"bottom\"></button>\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\r\n (click)=\"dataExporter.exportPdf(tabla2.filteredValue == null ? tabla2.value : tabla2.filteredValue , exportColumns, 'tabla2')\"\r\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\r\n </div>\r\n </div>\r\n <br/>\r\n <p-table #tablaDatos2 responsiveLayout=\"scroll\" [value]=\"lineasCargadas\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\r\n [rows]=\"10\" [totalRecords]=\"lineasCargadas.length\"\r\n [paginator]=\"lineasCargadas.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n *ngIf=\" !verInconsistencia\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'numerolinea' | translate}}</th>\r\n <th>{{'linea' | translate}}</th>\r\n <th>{{'mensaje' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.numero}}</td>\r\n <td>{{bean.linea}}</td>\r\n <td>{{bean.mensaje}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" let-dato >\r\n <tr>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'resumen' | translate}}: </td>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineasinmensaje' | translate}}: {{lineasSinMensaje}}</td>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineaconmensaje' | translate}}: {{lineasConMensaje}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <p-table responsiveLayout=\"scroll\" [value]=\"lineasInconsistencia\" responsiveLaoyout=\"scroll\" [paginator]=\"true\"\r\n [rows]=\"10\" [totalRecords]=\"lineasInconsistencia.length\"\r\n [paginator]=\"lineasInconsistencia.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n *ngIf=\"verInconsistencia\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'numerolinea' | translate}}</th>\r\n <th>{{'linea' | translate}}</th>\r\n <th>{{'mensaje' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.numero}}</td>\r\n <td>{{bean.linea}}</td>\r\n <td>{{bean.mensaje}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"footer\" let-dato >\r\n <tr>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'resumen' | translate}}: </td>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineasinmensaje' | translate}}: {{lineasSinMensaje}}</td>\r\n <td class=\"font-bold\" *ngIf=\"lineasConMensaje != 0 || lineasSinMensaje != 0\">{{'cantidadlineaconmensaje' | translate}}: {{lineasConMensaje}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n </div>\r\n </div>\r\n \r\n \r\n</div>\r\n</div>\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ImportarFuenteConComponent } from '../importar-fuente-con/importar-fuente-con.component';\r\nimport { Router } from '@angular/router';\r\nimport { FuenteProcesoGeneralModel } from '../../../../seguridad/modelos/FuenteProcesoGeneralModel';\r\nimport { CargueLineaModel } from '../../../../seguridad/modelos/CargueLineaModel';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { MenuService } from '../../../../core/servicios/menu.service'\r\nimport { CargueLineaService } from '../../../services/carguelinea.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { StorageService } from '../../../../core/servicios/storage.service';\r\nimport { TableModule } from 'primeng/table';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-importar-fuente-general',\r\n imports: [CommonModule, TableModule, MenubarModule, ConfirmPopupModule, ImportarFuenteConComponent, InputTextModule, TranslateModule, DatePipe, TabViewModule, ButtonModule, InputTextModule, FormsModule],\r\n standalone: true,\r\n providers: [MessageService, ConfirmationService],\r\n templateUrl: './importar-fuente-general.component.html',\r\n styleUrls: ['./importar-fuente-general.component.scss']\r\n})\r\nexport class ImportarFuenteGeneralComponent implements OnInit {\r\n\r\n public tipoPresentacion: string ='fuente';\r\n public vistaVisualizar: string;\r\n public listaFuenteProceso: FuenteProcesoGeneralModel[] = []\r\n public ver: boolean = true;\r\n public fuenteProcesoDTO: FuenteProcesoGeneralModel;\r\n public listaLineas: CargueLineaModel[] = []\r\n public items: MenuItem[]\r\n public mostrarMenu: boolean = true;\r\n public titulo: string;\r\n\r\n @ViewChild('detalle') detalle: ImportarFuenteConComponent;\r\n\r\n paginator={rows:15, totalRecords:0, rowsLL:10, totalRecordsLL:0}\r\n\r\n constructor(private generalService: GeneralService,\r\n private confirmationService: ConfirmationService,\r\n private notificacionesService: ToastService,\r\n private generalPipe: GeneralPipe,\r\n private menuService: MenuService,\r\n private storage: StorageService,\r\n public utilsService: UtilsService,\r\n private cargueLinea: CargueLineaService) { }\r\n\r\n ngOnInit(): void {\r\n this.ver = true;\r\n this.vistaVisualizar = null;\r\n this.items = [\r\n {\r\n label: 'Lista Fuentes de Importación',\r\n icon: 'glyphicons glyphicons-file-cloud',\r\n command: (event) => {\r\n this.tipoPresentacion = 'fuente';\r\n this.titulo = 'Lista Fuentes de Importación';\r\n this.menuService.setBreadcrumb([{ label: this.titulo , command: (event) => { location.reload()}}]);\r\n },\r\n },\r\n {\r\n label: 'Procesos Generados',\r\n icon: 'glyphicons glyphicons-file',\r\n command: (event) => {\r\n this.tipoPresentacion = 'proceso';\r\n this.titulo = 'Procesos Generados';\r\n this.menuService.setBreadcrumb([{ label: this.titulo, command: (event) =>{ location.reload() } }]);\r\n },\r\n },\r\n ]\r\n }\r\n\r\n isVer() {\r\n if (!this.ver){\r\n return this.ver;\r\n }\r\n this.ver = false;\r\n this.tipoPresentacion = 'fuente'\r\n this.titulo = 'Lista Fuentes de Importación';\r\n this.menuService.setBreadcrumb([{ label: this.titulo, command: (event) => { location.reload()} }]);\r\n this.generalService.queryForList(new GeneralModel('FuenteProcesoGeneralDTO', null, false, {})).subscribe(data => {\r\n this.listaFuenteProceso = data;\r\n this.paginator.totalRecords = this.listaFuenteProceso.length;\r\n this.detalle.traerFuente();\r\n\r\n })\r\n return this.ver;\r\n }\r\n\r\n verAnterior(event){\r\n this.mostrarMenu = false;\r\n this.fuenteProcesoDTO = event.data;\r\n this.generalService.queryForList(new GeneralModel('CargueLineaDTO', null, false, {proceso: this.fuenteProcesoDTO.llaveTabla})).subscribe(data => {\r\n this.listaLineas = data;\r\n this.paginator.totalRecordsLL = this.listaLineas.length;\r\n this.vistaVisualizar = 'detalle';\r\n this.menuService.setBreadcrumb([{ label: this.titulo ,command: (event) =>{ this.regresar() } }, { label: 'Detalle Procesos Generados' }]);\r\n })\r\n }\r\n\r\n eliminar(){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: '¿Desea eliminar el registro?',\r\n acceptLabel: 'Si',\r\n icon: 'confirmar',\r\n accept: () => {\r\n this.cargueLinea.eliminarProceso({llaveProceso: this.fuenteProcesoDTO.llaveTabla}).subscribe(data => {\r\n var index = this.listaFuenteProceso.indexOf(this.fuenteProcesoDTO);\r\n this.listaFuenteProceso.splice(index, 1);\r\n this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR)\r\n this.regresar()\r\n })\r\n }\r\n })\r\n \r\n } \r\n\r\n regresar(){\r\n if (this.tipoPresentacion == 'fuente'){\r\n console.log(this.detalle.estadoRegresar)\r\n if (this.detalle.estadoRegresar == 'volverImportar'){\r\n this.detalle.importarNuevamente();\r\n return;\r\n }\r\n\r\n if (this.detalle.estadoRegresar == 'regresarImportar'){\r\n this.detalle.regresarDatos();\r\n return;\r\n }\r\n }\r\n if ( this.detalle?.regresarPuntoProceso){\r\n window.location.href = this.detalle?.regresarPuntoProceso;\r\n return;\r\n }\r\n this.vistaVisualizar = null;\r\n this.mostrarMenu = true;\r\n if (this.tipoPresentacion == 'fuente'){\r\n this.detalle.mostrar = false;\r\n }\r\n if (this.listaFuenteProceso.length == 0){\r\n this.tipoPresentacion = 'fuente';\r\n this.titulo = 'Lista Fuentes de Importación';\r\n }\r\n this.menuService.setBreadcrumb([{ label: this.titulo , command: (event) => { location.reload()}}]);\r\n }\r\n\r\n regresarFuente(event){\r\n if (event){\r\n this.regresar();\r\n } else {\r\n this.mostrarMenu = false;\r\n }\r\n }\r\n\r\n public autoServicioPortal(): boolean {\r\n if (this.storage.getDecodedJWT().aplicacion == 10) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}","<p-confirmPopup></p-confirmPopup>\r\n<div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\r\n <h1 class=\"mb-1\">{{'importarfuente' | translate}}</h1>\r\n \r\n <button pButton pRipple (click)=\"regresar()\" label=\"{{'link_regresar' | translate}}\" icon=\"pi pi-chevron-left\" *ngIf=\"!mostrarMenu\"\r\n class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\r\n</div>\r\n\r\n<p-menubar [model]=\"items\" class=\"menu-accion-sara\" *ngIf=\"mostrarMenu && !autoServicioPortal()\"></p-menubar>\r\n\r\n<div *ngIf=\"isVer() && mostrarMenu\"></div>\r\n<h4 *ngIf=\"!autoServicioPortal()\">{{titulo}}</h4>\r\n\r\n<div *ngIf=\"tipoPresentacion == 'fuente'\">\r\n <app-importar-fuente-con #detalle (regresarFuente)=\"regresarFuente($event)\"></app-importar-fuente-con>\r\n</div>\r\n<div *ngIf=\"tipoPresentacion != 'fuente' && vistaVisualizar == null\">\r\n <p-table #tablaFuenteProceso\r\n responsiveLayout=\"scroll\"\r\n [scrollable]=\"true\"\r\n [value]=\"listaFuenteProceso\"\r\n [paginator]=\"paginator.totalRecords > paginator.rows\"\r\n [rows]=\"paginator.rows\"\r\n [totalRecords]=\"paginator.totalRecords\"\r\n [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n selectionMode=\"single\"\r\n styleClass=\"p-datatable-striped\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n (onRowSelect)=\"verAnterior($event)\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"text-align: center\">{{'fuente' | translate}}</th>\r\n <th style=\"text-align: center\">{{'usuario' | translate}}</th>\r\n <th style=\"text-align: center\">{{'estado' | translate}}</th>\r\n <th style=\"text-align: center\">{{'archivo' | translate}}</th>\r\n <th style=\"text-align: center\">{{'proceso' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td style=\"text-align: center\">{{bean.nombreFuente}}</td>\r\n <td style=\"text-align: center\">{{bean.usuario}}</td>\r\n <td style=\"text-align: center\">{{bean.estado}}</td>\r\n <td style=\"text-align: center\">{{bean.archivo}}</td>\r\n <td style=\"text-align: center\">{{bean.fechaProceso | date : ('formatofechahora' | translate)}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<div *ngIf=\"tipoPresentacion != 'fuente' && vistaVisualizar == 'detalle'\">\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <div class=\"card mt-2 mb-2\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}} {{'cargue' | translate}}</h5>\r\n <div class=\"contenedor p-fluid grid mt-1 mb-1\">\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.nombreFuente\" [disabled]=\"true\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"fuente\">{{'fuente' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.usuario\" [disabled]=\"true\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"usuario\">{{'usuario' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.estado\" [disabled]=\"true\" pInputText autofocus\r\n type=\"text\" />\r\n <label for=\"estado\">{{'estado' | translate}}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-3 md:col-3 lg:col-3\">\r\n <span class=\"p-float-label\">\r\n <input pInputText class=\"w-full\" [(ngModel)]=\"fuenteProcesoDTO.archivo\" [disabled]=\"true\" autofocus\r\n type=\"text\" />\r\n <label for=\"archivo\">{{'archivo' | translate}}</label>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"m-2 p-button p-button-outlined\" \r\n icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminar()\">\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <p-table #tablaCargueLinea\r\n responsiveLayout=\"scroll\"\r\n [scrollable]=\"true\"\r\n [value]=\"listaLineas\"\r\n [paginator]=\"paginator.totalRecordsLL > paginator.rowsLL\"\r\n [rows]=\"paginator.rowsLL\"\r\n [totalRecords]=\"paginator.totalRecordsLL\"\r\n [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n styleClass=\"p-datatable-striped\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"text-align: center\">{{'linea' | translate}}</th>\r\n <th style=\"text-align: center\">{{'mensaje' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td style=\"text-align: center\">{{bean.linea}}</td>\r\n <td style=\"text-align: center\">{{bean.mensaje}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n</div>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tstandalone: true,\r\n\tname: 'reporteFuentePipe'\r\n})\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ReporteFuentePipe implements PipeTransform {\r\n\r\n\tSQL = 'S';\r\n\tFUENTE = 'F';\r\n\tFIJO = 'I';\r\n\r\n\tSQL_DESC = 'SQL';\r\n\tFUENTE_DESC = 'Fuente';\r\n\tFIJO_DESC = 'Fijo';\r\n\r\n\tLISTA_TIPO = [\r\n\t\t{ codigo: this.SQL, nombre: this.SQL_DESC },\r\n\t\t{ codigo: this.FUENTE, nombre: this.FUENTE_DESC },\r\n\t\t{ codigo: this.FIJO, nombre: this.FIJO_DESC }\r\n\t]\r\n\r\n\tLISTA_TIPO_SIN_PERMISO = [\r\n\t\t{ codigo: this.FUENTE, nombre: this.FUENTE_DESC },\r\n\t]\r\n\r\n\tMOMENTOS_SEGUNDO_PLANO = 'S';\r\n\tMOMENTOS_HILO = 'H';\r\n\tMOMENTOS_SINHILO = 'D';\r\n\r\n\tLISTA_MOMENTO = [\r\n\t\t{ codigo: this.MOMENTOS_SEGUNDO_PLANO, nombre: 'Se permite ejecutar en segundo plano' },\r\n\t\t{ codigo: this.MOMENTOS_HILO, nombre: 'Ejecutar sin limite de tiempo' },\r\n\t\t{ codigo: this.MOMENTOS_SINHILO, nombre: 'Ejecutar limite de tiempo de la sesion' }\r\n\t]\r\n\r\n\tTIPO_NUMERO = 'N';\r\n\tTIPO_BIGDECIMAL = 'B';\r\n\tTIPO_FECHA = 'F';\r\n\tTIPO_TEXTO = 'T';\r\n\tTIPO_TEXTO_SERIE = 'E';\r\n\tTIPO_NUMERO_SERIE = 'U';\r\n\r\n\tTIPOS_DATO = [\r\n\t\t{ codigo: this.TIPO_FECHA, nombre: 'Fecha' },\r\n\t\t{ codigo: this.TIPO_NUMERO, nombre: 'Numero Entero' },\r\n\t\t{ codigo: this.TIPO_BIGDECIMAL, nombre: 'Numero Decimal' },\r\n\t\t{ codigo: this.TIPO_TEXTO, nombre: 'Texto' },\r\n\t\t{ codigo: this.TIPO_TEXTO_SERIE, nombre: 'Serie Texto' },\r\n\t\t{ codigo: this.TIPO_NUMERO_SERIE, nombre: 'Serie Numero' },\r\n\t]\r\n\r\n\tTIPO_DIRECTO = 'D';\r\n\tTIPO_LISTA = 'L';\r\n\tTIPOS_ENTRADA = [\r\n\t\t{ codigo: this.TIPO_DIRECTO, nombre: 'Directo' },\r\n\t\t{ codigo: this.TIPO_LISTA, nombre: 'Lista' },\r\n\t]\r\n\r\n\tTIPOS_DATO_COLUMNA = [\r\n\t\t{ codigo: this.TIPO_FECHA, nombre: 'Fecha' },\r\n\t\t{ codigo: this.TIPO_NUMERO, nombre: 'Numero' },\r\n\t\t{ codigo: this.TIPO_TEXTO, nombre: 'Texto' },\r\n\t]\r\n\r\n\tMARCADOR = 'MA';\r\n\tMARCADORREGISTRO = 'MR';\r\n\tMARCADORTABLA = 'TB';\r\n\tMARCADORIMAGEN = 'IM';\r\n\tMARCADORIMAGENFIJA = 'IF';\r\n\tMARCADORTEXTOPLANO = 'TP';\r\n\tMARCADORQR = 'QR';\r\n\tMARCADORBARCODE = 'BC';\r\n\tMARCADORBARCODEGS1_128 = 'G1';\r\n\r\n\tDESMARCADOR = 'Marcador';\r\n\tDESMARCADORREGISTRO = 'Marcador Registro';\r\n\tDESMARCADORTABLA = 'Tabla';\r\n\tDESMARCADORIMAGEN = 'Imagen';\r\n\tDESMARCADORIMAGENFIJA = 'Imagen Fija';\r\n\tDESMARCADORQR = 'Imagen QR';\r\n\tDESMARCADORBARCODE = 'Imagen Codigo Barra 128';\r\n\tDESMARCADORBARCODEGS1_128 = 'Imagen Codigo Barra GS1 - 128';\r\n\r\n\tLISTA_MARCADORES = [\r\n\t\t{ codigo: this.MARCADOR, nombre: this.DESMARCADOR },\r\n\t\t{ codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\r\n\t\t{ codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\r\n\t\t{ codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\r\n\t\t{ codigo: this.MARCADORIMAGENFIJA, nombre: this.DESMARCADORIMAGENFIJA },\r\n\t\t{ codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\r\n\t\t{ codigo: this.MARCADORBARCODE, nombre: this.DESMARCADORBARCODE },\r\n\t\t{ codigo: this.MARCADORBARCODEGS1_128, nombre: this.DESMARCADORBARCODEGS1_128 },\r\n\t]\r\n\r\n\tLISTA_MARCADORES_XML = [\r\n\t\t{ codigo: this.MARCADOR, nombre: this.DESMARCADOR },\r\n\t\t{ codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\r\n\t\t{ codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\r\n\t]\r\n\r\n\tDIAGRAMA_BARRAS = 'B';\r\n\tDIAGRAMA_BARRAS_HOR = 'H';\r\n\tDIAGRAMA_TORTA = 'T';\r\n\tDIAGRAMA_AREA = 'A';\r\n\tDIAGRAMA_RADAR = 'R';\r\n\tDIAGRAMA_POLAR = 'P';\r\n\tDIAGRAMA_DONA = 'D';\r\n\tDIAGRAMA_BARRAS_STRING = 'Diagrama de barras Vertifical';\r\n\tDIAGRAMA_BARRAS_HOR_STRING = 'Diagrama de barras Horizontal';\r\n\tDIAGRAMA_TORTA_STRING = 'Diagrama de Torta';\r\n\tDIAGRAMA_AREA_STRING = 'Diagrama de Area';\r\n\tDIAGRAMA_RADAR_STRING = 'Diagrama de Radar';\r\n\tDIAGRAMA_POLAR_STRING = 'Diagrama de Polar';\r\n\tDIAGRAMA_DONA_STRING = 'Diagrama de Dona';\r\n\r\n\tLISTA_TIPO_GRAFICO = [\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, nombre: this.DIAGRAMA_BARRAS_HOR_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_POLAR, nombre: this.DIAGRAMA_POLAR_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_DONA, nombre: this.DIAGRAMA_DONA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_RADAR, nombre: this.DIAGRAMA_RADAR_STRING },\r\n\t]\r\n\r\n\tDIAGRAMA_LINEA = 'L';\r\n\tDIAGRAMA_HISTOGRAMA = 'H';\r\n\tDIAGRAMA_DIFERENCIA = 'D';\r\n\tDIAGRAMA_BARRA_HORIZONTAL = 'Z';\r\n\tDIAGRAMA_BARRA_ESCALA_HORIZONTAL = 'E';\r\n\tDIAGRAMA_BARRA_ESCALA_VERTICAL = 'V';\r\n\tDIAGRAMA_LINEA_STRING = 'Diagrama de linea';\r\n\tDIAGRAMA_HISTOGRAMA_STRING = 'Diagrama de Histograma';\r\n\tDIAGRAMA_DIFERENCIA_STRING = 'Diagrama de Diferencia';\r\n\tDIAGRAMA_BARRA_HORIZONTAL_STRING = 'Diagrama de Barras Horizontal';\r\n\tDIAGRAMA_BARRA_ESCALA_STRING = 'Diagrama horizontal de Barras con escala';\r\n\tDIAGRAMA_BARRA_ESCALA_VERTICAL_STRING = 'Diagrama vertical de Barras con escala';\r\n\r\n\tLISTA_TIPO_GRAFICO_JFC = [\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_LINEA, nombre: this.DIAGRAMA_LINEA_STRING },\r\n\t\t//{codigo: this.DIAGRAMA_HISTOGRAMA, nombre: this.DIAGRAMA_HISTOGRAMA_STRING}, //TODO ajustar en Ejecucion Reporte\r\n\t\t{ codigo: this.DIAGRAMA_DIFERENCIA, nombre: this.DIAGRAMA_DIFERENCIA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_BARRA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_HORIZONTAL_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_BARRA_ESCALA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_ESCALA_STRING },\r\n\t\t{ codigo: this.DIAGRAMA_BARRA_ESCALA_VERTICAL, nombre: this.DIAGRAMA_BARRA_ESCALA_VERTICAL_STRING },\r\n\t]\r\n\r\n\tSERIE = 'S';\r\n\tCATEGORIA = 'C';\r\n\tVALOR = 'V';\r\n\tIMAGEN = 'I';\r\n\tSERIE_STRING = 'Serie';\r\n\tCATEGORIA_STRING = 'Categoria';\r\n\tVALOR_STRING = 'Valor';\r\n\tIMAGEN_DESC = 'Imagen';\r\n\r\n\r\n\tLISTA_RECURSO_GRAFICA = [\r\n\t\t{ codigo: this.SERIE, nombre: this.SERIE_STRING },\r\n\t\t{ codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\r\n\t\t{ codigo: this.VALOR, nombre: this.VALOR_STRING },\r\n\t\t{ codigo: this.IMAGEN, nombre: this.IMAGEN_DESC },\r\n\t\t{ codigo: 'G', nombre: 'Grupo' },\r\n\t]\r\n\r\n\tRECURSO_GRAFICA = [\r\n\t\t{ codigo: this.SERIE, nombre: this.SERIE_STRING },\r\n\t\t{ codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\r\n\t\t{ codigo: this.VALOR, nombre: this.VALOR_STRING },\r\n\t]\r\n\r\n\t/* ======================================\r\n\t * Formatos de generacion de reportes \r\n\t * ====================================== */\r\n\tGENERACION_JASPERDINAMICO = 'D';\r\n\tDESC_GENERACION_JASPERDINAMICO = 'Jasper dinamico';\r\n\r\n\tGENERACION_JASPERFIJO = 'F';\r\n\tDESC_GENERACION_JASPERFIJO = 'Jasper fijo';\r\n\r\n\tGENERACION_EXCEL = 'E';\r\n\tDESC_GENERACION_EXCEL = 'Excel';\r\n\r\n\tGENERACION_XML = 'X';\r\n\tDESC_GENERACION_XML = 'Archivo xml';\r\n\r\n\tGENERACION_PLANTILLA = 'W';\r\n\tDESC_GENERACION_PLANTILLA = 'Plantilla';\r\n\r\n\tGENERACION_ARCHIVOPLANO = 'T';\r\n\tDESC_GENERACION_ARCHIVOPLANO = 'Archivo Plano';\r\n\r\n\tGENERACION_TABLA = 'A';\r\n\tDESC_GENERACION_TABLA = 'Tabla';\r\n\r\n\tGENERACION_COLUMNARIO = 'C';\r\n\tDESC_GENERACION_COLUMNARIO = 'Columnario';\r\n\r\n\t/* ======================================\r\n\t * Operaciones sobre reportes generados \r\n\t * ======================================*/\r\n\tOPERACION_DESCARGAR = 'D';\r\n\tDESC_OPERACION_DESCARGAR = 'Descargar';\r\n\r\n\tOPERACION_ENVIARCORREO = 'E';\r\n\tDESC_OPERACION_ENVIARCORREO = 'Enviar correo';\r\n\r\n\tOPERACION_ENVIOMASIVO = 'M';\r\n\tDESC_OPERACION_ENVIOMASIVO = 'Envio masivo';\r\n\r\n\tOPERACION_CORREOPUBLICAR = 'MP';\r\n\tDESC_OPERACION_CORREOPUBLICAR = 'Enviar y Publicar Masivo';\r\n\r\n\tOPERACION_PUBLICAR = 'P';\r\n\tDESC_OPERACION_PUBLICAR = 'Publicar';\r\n\r\n\tOPERACION_PROCESO_EXTERNO = 'X';\r\n\tDESC_OPERACION_PROCESO_EXTERNO = 'Proceso Externo';\r\n\r\n\tPARAMETRO_ENTRADA_CODEMPRESA = 'codempresa';\r\n\tPARAMETRO_ENTRADA_CEDULA = 'cedula';\r\n\tPARAMETRO_ENTRADA_CONTRATO = 'contrato';\r\n\r\n\tPARAMETRO_ENTRADA_LOGIN = 'login';\r\n\tPARAMETRO_ENTRADA_ROL = 'rol';\r\n\r\n\tPARAMETRO_NUMERO_LIQUIDACION_PERIODICA = 'numero';\r\n\r\n\tOPERACION_SEGUNDOPLANO = 'S';\r\n\tDESC_OPERACION_SEGUNDOPLANO = 'Segundo Plano';\r\n\r\n\tMAPA_TIPO_ARCHIVOS = [\r\n\t\t{ codigo: 'html', nombre: 'html' },\r\n\t\t{ codigo: 'xml', nombre: 'xml' },\r\n\t\t{ codigo: 'xls', nombre: 'xls' },\r\n\t\t{ codigo: 'pdf', nombre: 'pdf' },\r\n\t\t{ codigo: 'csv', nombre: 'csv' },\r\n\t\t{ codigo: 'txt', nombre: 'txt' },\r\n\t]\r\n\r\n\tMODO_PARAMETRO = 'P';\r\n\tMODO_DATOS = 'D';\r\n\r\n\tDES_MODO_PARAMETRO = 'Parametro';\r\n\tDES_MODO_DATOS = 'Datos';\r\n\r\n\tMODOS = [\r\n\t\t{ codigo: this.MODO_PARAMETRO, nombre: this.DES_MODO_PARAMETRO },\r\n\t\t{ codigo: this.MODO_DATOS, nombre: this.DES_MODO_DATOS },\r\n\t]\r\n\r\n\tIZQUIERDA = 'I';\r\n\tDERECHA = 'D';\r\n\tCENTRO = 'C';\r\n\tJUSTIFICADO = 'J';\r\n\r\n\tIZQUIERDA_DESC = 'Izquierda';\r\n\tDERECHA_DESC = 'Derecha';\r\n\tCENTRO_DESC = 'Centro';\r\n\tJUSTIFICADO_DESC = 'Justificado';\r\n\r\n\tLISTA_ALINEACION = [\r\n\t\t{ codigo: this.IZQUIERDA, nombre: this.IZQUIERDA_DESC },\r\n\t\t{ codigo: this.DERECHA, nombre: this.DERECHA_DESC },\r\n\t\t{ codigo: this.CENTRO, nombre: this.CENTRO_DESC },\r\n\t\t{ codigo: this.JUSTIFICADO, nombre: this.JUSTIFICADO_DESC }\r\n\t]\r\n\r\n\t//Tipo Marcadores Texto\r\n\tMARCADORTEXTOFIJO = 'F';\r\n\tMARCADORTEXTODINAMICO = 'D';\r\n\r\n\tMARCADORTEXTOFIJO_DESC = 'Fijo';\r\n\tMARCADORTEXTODINAMICO_DESC = 'Columna';\r\n\r\n\tREPORTEARCHIVOPLANO = 'T';\r\n\tTIPOMARCADORESTEXTO = [\r\n\t\t{ codigo: this.MARCADORTEXTOFIJO, nombre: this.MARCADORTEXTOFIJO_DESC },\r\n\t\t{ codigo: this.MARCADORTEXTODINAMICO, nombre: this.MARCADORTEXTODINAMICO_DESC }\r\n\t]\r\n\r\n\ttransform(value: any, ...args: any): any {\r\n\t\tlet result = value;\r\n\t\tif (args[0] == 'listaTipo') { this.LISTA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaMomento') { this.LISTA_MOMENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoDato') { this.TIPOS_DATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoDatoColumna') { this.TIPOS_DATO_COLUMNA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoDatoMarcadores') { this.LISTA_MARCADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoGrafico') { this.LISTA_TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoGraficoJFC') { this.LISTA_TIPO_GRAFICO_JFC.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaRecursoGrafica') { this.LISTA_RECURSO_GRAFICA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaAlineacion') { this.LISTA_ALINEACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoMarcadoresTexto') { this.TIPOMARCADORESTEXTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\r\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { TableModule } from 'primeng/table';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\n\r\n@Component({\r\n selector: 'detalle-campo-reporte',\r\n imports: [TranslateModule, CommonModule, ButtonModule, FormsModule, ReactiveFormsModule, DropdownModule, ReporteFuentePipe, ConfirmPopupModule, TableModule, InputTextModule, InputTextareaModule],\r\n standalone: true,\r\n templateUrl: './detalle-campo-reporte.component.html',\r\n styleUrls: ['./detalle-campo-reporte.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class DetalleCampoReporteComponent implements OnInit {\r\n\r\n public listaColumna: ReporteColumnaModel[] = [];\r\n @Input() public reporteFuente: ReporteFuenteModel;\r\n \r\n public reporteColumna: ReporteColumnaModel;\r\n public formReporteColumna: FormGroup;\r\n public vistaVisualizar: string;\r\n public nuevo: boolean;\r\n public submitted: boolean;\r\n items: ({ label: string; icon: string; command: () => void; url?: undefined; separator?: undefined; routerLink?: undefined; } | { label: string; icon: string; url: string; command?: undefined; separator?: undefined; routerLink?: undefined; } | { separator: boolean; label?: undefined; icon?: undefined; command?: undefined; url?: undefined; routerLink?: undefined; } | { label: string; icon: string; routerLink: string[]; command?: undefined; url?: undefined; separator?: undefined; })[];\r\n\r\n\r\n paginador = {\r\n rows: 10,\r\n totalRecords: 0\r\n }\r\n\r\n public listaTipoDato;\r\n\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private notificacionesBusService: ToastService,\r\n private generalService: GeneralService,\r\n private confirmationService: ConfirmationService,\r\n private reporteService: EjecucionReporteService,\r\n private generalPipe: GeneralPipe,\r\n private translateService: TranslateService,\r\n private reporteFuentePipe: ReporteFuentePipe) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.listaTipoDato = this.reporteFuentePipe.TIPOS_DATO_COLUMNA;\r\n this.items = []\r\n if (this.isFuente()){\r\n this.items.push(\r\n {label: this.translateService.instant('link_importar'), icon: 'pi pi-refresh', command: () => {\r\n this.importar();\r\n }})\r\n } else if (this.isSql){\r\n this.items.push(\r\n {label: this.translateService.instant('link_generar'), icon: 'pi pi-refresh', command: () => {\r\n this.generar();\r\n }})\r\n }\r\n }\r\n\r\n cargarListaColumna(event){\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {\r\n reporteFuente: this.reporteFuente.llave,\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows\r\n })).subscribe(data => {\r\n this.listaColumna = data;\r\n this.generalService.cantidadRegistros(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.paginador.totalRecords = data;\r\n })\r\n })\r\n }\r\n\r\n public cargarFormulario(){\r\n this.formReporteColumna = this.formBuilder.group({\r\n nombre: new FormControl(this.reporteColumna.nombre, [Validators.required]),\r\n sintaxis: new FormControl(this.reporteColumna.sintaxis, [Validators.required]),\r\n tipoDato: new FormControl(this.reporteColumna.tipoDato, [Validators.required]),\r\n llaveTabla: new FormControl(this.reporteColumna.llaveTabla),\r\n reporteFuente: new FormControl(this.reporteFuente.llave)\r\n });\r\n }\r\n public verAction(event){\r\n this.reporteColumna = event.data;\r\n this.vistaVisualizar = 'detalle';\r\n this.nuevo = false;\r\n this.cargarFormulario();\r\n }\r\n\r\n public nuevaColumna(){\r\n this.vistaVisualizar = 'detalle';\r\n this.nuevo = true;\r\n this.reporteColumna = new ReporteColumnaModel();\r\n this.cargarFormulario();\r\n }\r\n\r\n public actualizar(){\r\n this.submitted = true;\r\n if (!this.formReporteColumna.valid){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n Object.keys(this.formReporteColumna.controls).forEach((key) => {\r\n if (this.formReporteColumna.get(key).errors) {\r\n this.formReporteColumna.get(key).markAsDirty();\r\n }\r\n });\r\n return;\r\n }\r\n if (this.nuevo){\r\n this.generalService.crearRegistro(new GeneralModel('ReporteColumnaDTO', null, false, this.formReporteColumna.value)).subscribe(data => {\r\n this.vistaVisualizar = null;\r\n });\r\n } else {\r\n this.generalService.update(new GeneralModel('ReporteColumnaDTO', null, false, this.formReporteColumna.value)).subscribe(data => {\r\n this.vistaVisualizar = null;\r\n });\r\n }\r\n this.cargarListaColumna({first: 0, rows: 10})\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR);\r\n }\r\n\r\n public importar(){\r\n this.reporteService.cargarCampos(this.reporteFuente).subscribe(data => {\r\n this.cargarListaColumna({first: 0, rows: 10})\r\n this.notificacionesBusService.showInfo('Se importaron las columnas')\r\n });\r\n }\r\n\r\n\r\n public generar(){\r\n this.reporteService.construirColumnas(this.reporteFuente).subscribe(data => {\r\n this.cargarListaColumna({first: 0, rows: 10})\r\n this.notificacionesBusService.showInfo('Se generaron las columnas')\r\n });\r\n }\r\n\r\n public eliminar(event: Event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n let entradaEliminar:ReporteColumnaModel = this.formReporteColumna.value;\r\n this.generalService.delete(new GeneralModel('ReporteColumnaDTO', null, false, entradaEliminar)).subscribe(data => {\r\n if (data == 1) {\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR);\r\n this.vistaVisualizar = null;\r\n } else {\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public isFijo():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\r\n }\r\n\r\n public isSql():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\r\n }\r\n\r\n public isFuente():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\r\n }\r\n\r\n public filtroOrigenFuente(tipo:string):boolean{\r\n return this.reporteFuente.origenFuente == tipo;\r\n }\r\n\r\n\r\n\r\n}\r\n","<p-confirmPopup></p-confirmPopup>\r\n<div class=\"flex justify-content-between align-items-center mb-3\">\r\n <h1 class=\"text-xl mb-1\">{{'campo' | translate}}</h1>\r\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"vistaVisualizar != 'detalle'\">\r\n <button pButton pRipple (click)=\"nuevaColumna()\" label=\"{{'link_nuevo' | translate}}\"\r\n icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\r\n <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_importar' | translate}}\" *ngIf=\"isFuente()\"\r\n (click)=\"importar()\"><i class=\"glyphicons glyphicons-restart\"></i></button>\r\n <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_generar' | translate}}\" *ngIf=\"isSql()\"\r\n (click)=\"generar()\"><i class=\"glyphicons glyphicons-restart\"></i></button>\r\n </div>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\r\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'campo' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n</div>\r\n\r\n<p-table [value]=\"listaColumna\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\" dataKey=\"llave\"\r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" *ngIf=\"vistaVisualizar != 'detalle'\"\r\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginador.rows\" [totalRecords]=\"paginador.totalRecords\" [paginator]=\"paginador.totalRecords > paginador.rows\"\r\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaColumna($event)\">\r\n <ng-template pTemplate=\"header\">\r\n \r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'nombre' | translate}} </th>\r\n <th>{{'sintaxis' | translate}} </th>\r\n <th>{{'tipo' | translate}} </th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-campo>\r\n <tr [pSelectableRow]=\"campo\">\r\n <td>{{campo.nombre}}</td>\r\n <td>{{campo.sintaxis}}</td>\r\n <td>{{campo.tipoDato | reporteFuentePipe : 'listaTipoDatoColumna'}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\r\n <div class=\"col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <form [formGroup]=\"formReporteColumna\" #formulario=\"ngForm\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <span class=\"p-float-label\">\r\n <input pInputText id=\"nombre\" type=\"text\" formControlName=\"nombre\" size=\"40\">\r\n <label htmlFor=\"nombre\">{{'nombre' | translate}} *</label>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label htmlFor=\"tipoDato\">{{'tipo' | translate}} *</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-12 md:col-12\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"sintaxis\"></textarea>\r\n <label htmlFor=\"sintaxis\">{{'sintaxis' | translate}} *</label>\r\n </span>\r\n </div>\r\n \r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\r\n icon=\"glyphicons {{reporteColumna.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \r\n label=\"{{reporteColumna.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteColumna.llaveTabla\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { PublicacionWebModel } from '../../../../seguridad/modelos/PublicacionWebModel';\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { ReporteEntradaModel } from '../../../../seguridad/modelos/ReporteEntradaModel';\r\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\n\r\n@Component({\r\n selector: 'detalle-distribucion-reporte',\r\n imports: [TranslateModule, CommonModule, ConfirmPopupModule, FieldsetModule, InputHelperSeleccionPlantillaComponent, DropdownModule, FormsModule, ButtonModule, InputTextModule, InputTextareaModule ],\r\n standalone: true,\r\n templateUrl: './detalle-distribucion-reporte.component.html',\r\n styleUrls: ['./detalle-distribucion-reporte.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class DetalleDistribucionReporteComponent implements OnInit, OnChanges {\r\n\r\n public reporteEntrada:ReporteEntradaModel;\r\n public vistaVisualizar: string;\r\n public listaColumnas: ReporteColumnaModel[] = []\r\n public listaPublicaciones: PublicacionWebModel[] = []\r\n\r\n public reporteFuente : ReporteFuenteModel = new ReporteFuenteModel;\r\n @Input() public modificarReporte : boolean;\r\n @Input() public llaveReporte : string;\r\n\r\n constructor(private notificacionesBusService: ToastService,\r\n private generalService: GeneralService,\r\n private generalPipe: GeneralPipe) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.cargar()\r\n \r\n }\r\n\r\n\r\n cargar(){\r\n if (this.llaveReporte){\r\n this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, {llave: this.llaveReporte})).subscribe(data => {\r\n this.reporteFuente = data;\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaColumnas = data;\r\n this.generalService.queryForList(new GeneralModel('PublicacionWebDTO', null, false, {diferente: '.'})).subscribe(data => {\r\n this.listaPublicaciones = data;\r\n })\r\n })\r\n })\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.cargar()\r\n }\r\n\r\n obtenerArchivo(event){\r\n this.reporteFuente.archivoHtml = event.data\r\n console.log(event)\r\n }\r\n\r\n \r\n public actualizar(){\r\n console.log(this.reporteFuente)\r\n if (this.reporteFuente.llave){\r\n\r\n this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporteFuente)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\r\n<p-confirmPopup></p-confirmPopup>\r\n\r\n<div class=\"card col-md-12\">\r\n <h1 class=\"text-xl\">{{'distribucion' | translate}}</h1>\r\n <p-fieldset>\r\n <ng-template pTemplate=\"header\">\r\n <div>\r\n <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\r\n <span>{{'enviar' | translate }} {{'correo' | translate }}</span>\r\n </div>\r\n </ng-template>\r\n \r\n <div class=\"Detallereporte p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"reporteFuente.archivoHtml ? reporteFuente.archivoHtml: ''\"\r\n [extensiones]=\"'html'\" [labelrar]=\"'Archivo HTML'\" [mostraroblicargo]=\"true\"\r\n (onSelected)=\"obtenerArchivo($event)\"></app-input-helper-seleccion-plantilla>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.campoEmail\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label htmlFor=\"campoEmail\">{{'campo' | translate }} {{'mail' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.campoClave\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label htmlFor=\"campoEmail\">{{'campo' | translate }} {{'clave' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <input pInputText id=\"asunto\" type=\"text\" [(ngModel)]=\"reporteFuente.asuntoEmail\" size=\"25\"\r\n maxlength=\"4000\">\r\n <label htmlFor=\"asunto\">{{'asunto' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <input pInputText id=\"nombreAdjunto\" type=\"text\" [(ngModel)]=\"reporteFuente.nombreAdjunto\"\r\n size=\"25\" maxlength=\"4000\">\r\n <label htmlFor=\"nombreAdjunto\">{{'nombre' | translate }} {{'adjunto' | translate }}</label>\r\n </span>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n\r\n <p-fieldset>\r\n <ng-template pTemplate=\"header\">\r\n <div>\r\n <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\r\n <span>{{'publicacion' | translate }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"Detallereporte p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaPublicaciones\" [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"reporteFuente.publicacion\" optionLabel=\"descripcion\"\r\n optionValue=\"llave\" [showClear]=\"true\"></p-dropdown>\r\n <label htmlFor=\"publicacion\">{{'publicacion' | translate }}</label>\r\n </span>\r\n\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"reporteFuente.campoPublica\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\" [showClear]=\"true\"></p-dropdown>\r\n <label>{{'campo' | translate }} {{'publicacion' | translate }}</label>\r\n </span>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"reporteFuente.publicaCarpeta\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\" [showClear]=\"true\"></p-dropdown>\r\n <label>{{'campo' | translate }} {{'carpeta' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.publicaTitulo\" size=\"25\"\r\n maxlength=\"100\">\r\n <label>{{'descripcion' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <span class=\"p-float-label\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tablaDestino\" size=\"25\" maxlength=\"50\">\r\n <label>{{'tabla' | translate }} {{'destino' | translate }}</label>\r\n </span>\r\n </div>\r\n\r\n </div>\r\n </p-fieldset>\r\n <div class=\"flex justify-content-end mt-3 mb-2\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\r\n (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ConfirmationService, ConfirmEventType, MessageService } from 'primeng/api';\r\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\r\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\r\nimport { FuenteDatoModel } from '../../../../seguridad/modelos/FuenteDato';\r\nimport { ReporteEntradaModel } from '../../../../seguridad/modelos/ReporteEntradaModel';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TableModule } from 'primeng/table';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\n\r\n@Component({\r\n selector: 'detalle-entrada-reporte',\r\n imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule],\r\n standalone: true,\r\n templateUrl: './detalle-entrada-reporte.component.html',\r\n styleUrls: ['./detalle-entrada-reporte.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class DetalleEntradaReporteComponent implements OnInit {\r\n\r\n public formReporteEntrada: FormGroup;\r\n public listaTipo;\r\n public listaTipoDato;\r\n public listaSiNo;\r\n\r\n public reporteEntrada:ReporteEntradaModel;\r\n public submitted = false;\r\n public vistaVisualizar: string;\r\n\r\n public listaEntrada : ReporteEntradaModel[] = [];\r\n public listaFuente : FuenteDatoModel[] = [] ;\r\n @Input() public llaveReporte : string;\r\n @Input() public modificarReporte : boolean;\r\n @Output() regresar = new EventEmitter;\r\n\r\n paginator={\r\n rows:10,\r\n totalRecords:0\r\n }\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private notificacionesBusService: ToastService,\r\n private generalService: GeneralService,\r\n private confirmationService: ConfirmationService,\r\n private reporteService: EjecucionReporteService,\r\n private generalPipe: GeneralPipe,\r\n private translateService: TranslateService,\r\n private reporteFuentePipe: ReporteFuentePipe) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.listaTipo = this.reporteFuentePipe.TIPOS_ENTRADA ;\r\n this.listaTipoDato = this.reporteFuentePipe.TIPOS_DATO;\r\n this.listaSiNo = this.generalPipe.LISTA_SINO\r\n \r\n }\r\n\r\n cargarListaEntrada(event){\r\n this.generalService.queryForList(new GeneralModel('ReporteEntradaDTO', null, false, {\r\n reporteFuente: this.llaveReporte,\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows,\r\n })).subscribe(data => {\r\n this.listaEntrada = data;\r\n this.generalService.cantidadRegistros(new GeneralModel('ReporteEntradaDTO', null, false, {\r\n reporteFuente: this.llaveReporte,\r\n })).subscribe(data => {\r\n this.paginator.totalRecords = data;\r\n })\r\n this.generalService.queryForList(new GeneralModel('FuenteDatoDTO', null, false, {origen: 'L'})).subscribe(data => {\r\n this.listaFuente = data;\r\n })\r\n })\r\n }\r\n\r\n public cargarFormularioReporteEntrada(){\r\n this.formReporteEntrada = this.formBuilder.group({\r\n descripcion: new FormControl(this.reporteEntrada.descripcion, [Validators.required]),\r\n parametro: new FormControl(this.reporteEntrada.parametro, [Validators.required]),\r\n tipo: new FormControl(this.reporteEntrada.tipo, [Validators.required]),\r\n tipoDato: new FormControl(this.reporteEntrada.tipoDato, [Validators.required]),\r\n fuenteDato : new FormControl(this.reporteEntrada.fuenteDato),\r\n valorDefecto: new FormControl(this.reporteEntrada.valorDefecto),\r\n orden: new FormControl(this.reporteEntrada.orden),\r\n parametroEntrada: new FormControl(this.reporteEntrada.parametroEntrada),\r\n formato: new FormControl(this.reporteEntrada.formato),\r\n solicitar: new FormControl(this.reporteEntrada.solicitar, [Validators.required]),\r\n llave: new FormControl(this.reporteEntrada.llave),\r\n reporteFuente: new FormControl(this.reporteEntrada.reporteFuente)\r\n });\r\n console.log('cargado form reporte entrada')\r\n }\r\n\r\n public actualizarTipo(){\r\n console.log(this.formReporteEntrada.value)\r\n if (this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_DIRECTO){\r\n this.formReporteEntrada.get('tipoDato').setValidators(Validators.required);\r\n this.formReporteEntrada.get('fuenteDato').clearValidators();\r\n }else if (this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_LISTA){\r\n this.formReporteEntrada.get('fuenteDato').setValidators(Validators.required);\r\n this.formReporteEntrada.get('tipoDato').clearValidators();\r\n }\r\n this.formReporteEntrada.controls['fuenteDato'].updateValueAndValidity();\r\n this.formReporteEntrada.controls['tipoDato'].updateValueAndValidity();\r\n\r\n }\r\n\r\n public verAction(event){\r\n this.reporteEntrada = event.data;\r\n this.vistaVisualizar = 'detalle';\r\n this.cargarFormularioReporteEntrada();\r\n\r\n }\r\n\r\n public nuevoEntrada(){\r\n this.vistaVisualizar = 'detalle';\r\n this.reporteEntrada = new ReporteEntradaModel();\r\n //this.reporteEntrada.tipo = this.reporteFuentePipe.TIPO_DIRECTO;\r\n this.cargarFormularioReporteEntrada();\r\n }\r\n\r\n public isDirecto():boolean{\r\n return this.formReporteEntrada.value.tipo != null && this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_DIRECTO;\r\n }\r\n\r\n public isLista():boolean{\r\n return this.formReporteEntrada.value.tipo != null && this.formReporteEntrada.value.tipo === this.reporteFuentePipe.TIPO_LISTA;\r\n }\r\n\r\n public eliminar(event: Event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n let entradaEliminar:ReporteEntradaModel = this.formReporteEntrada.value;\r\n this.generalService.delete(new GeneralModel('ReporteEntradaDTO', null, false, entradaEliminar)).subscribe(data => {\r\n if (data == 1) {\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR);\r\n this.vistaVisualizar = null;\r\n this.listaEntrada = this.listaEntrada.filter((item) => item.llave !== entradaEliminar.llave);\r\n this.regresar.emit(this.listaEntrada);\r\n } else {\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n }\r\n }, err => {\r\n var data = JSON.stringify(err.error.mensajeEtiqueta);\r\n if (data.includes('ORA-02292')) {\r\n this.notificacionesBusService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public actualizar(){\r\n this.submitted = true;\r\n if (!this.formReporteEntrada.valid) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n Object.keys(this.formReporteEntrada.controls).forEach((key) => {\r\n if (this.formReporteEntrada.get(key).errors) {\r\n this.formReporteEntrada.get(key).markAsDirty();\r\n }\r\n });\r\n return;\r\n }\r\n let entradaActualizar = this.formReporteEntrada.value;\r\n let actualizar = entradaActualizar.reporteFuente != null;\r\n entradaActualizar.reporteFuente = this.llaveReporte;\r\n this.reporteService.guardarEntrada(entradaActualizar).subscribe(data => {\r\n if (data != null) {\r\n entradaActualizar = data;\r\n this.vistaVisualizar = null;\r\n if (actualizar){\r\n this.listaEntrada = this.listaEntrada.filter((item) => item.llave !== entradaActualizar.llave);\r\n }\r\n this.listaEntrada.push(entradaActualizar);\r\n this.regresar.emit(this.listaEntrada);\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n this.notificacionesBusService.showSuccess( this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\r\n<p-confirmPopup></p-confirmPopup>\r\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\r\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \r\n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\r\n </button>\r\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\r\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n</div>\r\n\r\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\r\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\r\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'descripcion' | translate }} </th>\r\n <th>{{'tipo' | translate }} </th>\r\n <th>{{'parametro' | translate }} </th>\r\n <th>{{'valorpordefecto' | translate }} </th>\r\n <th>{{'orden' | translate }} </th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-entrada>\r\n <tr [pSelectableRow]=\"entrada\">\r\n <td>{{entrada.descripcion}}</td>\r\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\r\n <td>{{entrada.parametro}}</td>\r\n <td>{{entrada.valorDefecto}}</td>\r\n <td>{{entrada.orden}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\r\n <form [formGroup]=\"formReporteEntrada\" >\r\n <div class=\"col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\r\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\r\n maxlength=\"100\">\r\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\r\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\r\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\r\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\r\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\r\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\r\n <p-floatLabel>\r\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\r\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\r\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\r\n optionValue=\"codigo\">\r\n </p-dropdown>\r\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\r\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \r\n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tstandalone: true,\r\n\tname: 'reporteColumnarioPipe'\r\n})\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReporteColumnarioPipe implements PipeTransform {\r\n\r\n\tTIPO_FILA='F';\r\n\tTIPO_COLUMNA='C';\r\n\tTIPO_CELDA='D';\r\n\tTIPO_LABEL='L';\r\n\tTIPO_ADICIONAL='A';\r\n\tTIPO_FILA_NO_VISUALIZAR='N';\r\n\r\n\tTIPO_FILA_DESC='Fila';\r\n\tTIPO_COLUMNA_DESC='Columna';\r\n\tTIPO_CELDA_DESC='Celda';\r\n\tTIPO_LABEL_DESC='Label';\r\n\tTIPO_FILA_NO_VISUALIZAR_DESC='Fila No visualizable';\r\n\t\r\n\tMAPA_TIPO_COLUMNAS= [\r\n\t\t{codigo: this.TIPO_FILA, nombre: this.TIPO_FILA_DESC},\r\n\t\t{codigo: this.TIPO_CELDA, nombre: this.TIPO_CELDA_DESC},\r\n\t\t{codigo: this.TIPO_COLUMNA, nombre: this.TIPO_COLUMNA_DESC},\r\n\t\t{codigo: this.TIPO_LABEL, nombre: this.TIPO_LABEL_DESC},\r\n\t\t{codigo: this.TIPO_FILA_NO_VISUALIZAR, nombre: this.TIPO_FILA_NO_VISUALIZAR_DESC}\r\n\t]\r\n\r\n\t/*\r\n\t *=========================================\r\n\t * Constantes Reporte Columnario \r\n\t *=========================================\r\n\t */\r\n\t\r\n\tOPERACION_SUMAR= 'S';\r\n\tOPERACION_MAXIMO = 'X';\r\n\tOPERACION_MINIMO = 'M';\r\n\tOPERACION_PROMEDIO = 'P';\r\n\tOPERACION_CONTAR = 'C';\r\n\tOPERACION_NINGUNA='N';\r\n\t\r\n\tOPERACION_SUMAR_DESC= 'Sumar';\r\n\tOPERACION_MAXIMO_DESC = 'Maximo';\r\n\tOPERACION_MINIMO_DESC = 'Minimo';\r\n\tOPERACION_PROMEDIO_DESC = 'Promedio';\r\n\tOPERACION_CONTAR_DESC = 'Contar';\r\n\tOPERACION_NINGUNA_DESC='Ninguna';\r\n\r\n\tMAPA_OPERACIONES_COLUMNARIO= [\r\n\t\t{codigo: this.OPERACION_SUMAR, nombre: this.OPERACION_SUMAR_DESC},\r\n\t\t{codigo: this.OPERACION_MAXIMO, nombre: this.OPERACION_MAXIMO_DESC},\r\n\t\t{codigo: this.OPERACION_MINIMO, nombre: this.OPERACION_MINIMO_DESC},\r\n\t\t{codigo: this.OPERACION_PROMEDIO, nombre: this.OPERACION_PROMEDIO_DESC},\r\n\t\t{codigo: this.OPERACION_CONTAR, nombre: this.OPERACION_CONTAR_DESC}\r\n\t]\r\n\t\r\n\tMAPA_OPERACIONES_COLUMNARIO_EXCEL= [\r\n\t\t{codigo: this.OPERACION_SUMAR, nombre: this.OPERACION_SUMAR_DESC},\r\n\t\t{codigo: this.OPERACION_MAXIMO, nombre: this.OPERACION_MAXIMO_DESC},\r\n\t\t{codigo: this.OPERACION_MINIMO, nombre: this.OPERACION_MINIMO_DESC},\r\n\t\t{codigo: this.OPERACION_PROMEDIO, nombre: this.OPERACION_PROMEDIO_DESC},\r\n\t\t{codigo: this.OPERACION_CONTAR, nombre: this.OPERACION_CONTAR_DESC},\r\n\t\t{codigo: this.OPERACION_NINGUNA, nombre: this.OPERACION_NINGUNA_DESC}\r\n\t]\r\n\t\r\n\tASCENDENTE='A';\r\n\tDESCENDENTE='D';\r\n\tASCENDENTE_DESC='Ascendente';\r\n\tDESCENDENTE_DESC='Descendente';\r\n\t\r\n\tMAPA_ORDENAMIENTO= [\r\n\t\t{codigo: this.ASCENDENTE, nombre: this.ASCENDENTE_DESC},\r\n\t\t{codigo: this.DESCENDENTE, nombre: this.DESCENDENTE_DESC}\r\n\t]\r\n\r\n\tTIPO_MARCADORTEXTO='T';\r\n\tTIPO_MARCADORSQL='S';\r\n\tTIPO_MARCADORTEXTO_DESC='Texto';\r\n\tTIPO_MARCADORSQL_DESC='Sentencia sql';\r\n\t\r\n\tMAPA_TIPO_MARCADOR= [\r\n\t\t{codigo: this.TIPO_MARCADORTEXTO, nombre: this.TIPO_MARCADORTEXTO_DESC},\r\n\t\t{codigo: this.TIPO_MARCADORSQL, nombre: this.TIPO_MARCADORSQL_DESC}\r\n\t]\r\n\r\n\ttransform(value: any, ...args: any): any {\r\n\t\tlet result = value;\r\n\t\tif (args[0] == 'listaTipoColumna') { this.MAPA_TIPO_COLUMNAS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaOperacion') { this.MAPA_OPERACIONES_COLUMNARIO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaOperacionExcel') { this.MAPA_OPERACIONES_COLUMNARIO_EXCEL.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaOrdenamiento') { this.MAPA_ORDENAMIENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoMarcador') { this.MAPA_TIPO_MARCADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\treturn result;\r\n \t}\r\n\r\n}\r\n","import { HttpClient, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CargarArchivosService {\r\n\r\n constructor(private httpClient: HttpClient, private cookieService: CookieService) { }\r\n\r\n cargarArchivo(archivo: File, ruta: string, propiedad: string, codigoAplicacion: string): Observable<HttpEvent<{}>> {\r\n let url2 = this.cookieService.get('urlnucleo')\r\n let formData = new FormData();\r\n formData.append(\"archivo\", archivo);\r\n formData.append(\"ruta\", ruta);\r\n formData.append(\"propiedad\", propiedad);\r\n formData.append(\"aplicativo\", codigoAplicacion);\r\n\r\n const url = `${url2}/requieretoken/general/cargarArchivo`;\r\n const req = new HttpRequest('POST', url, formData, {\r\n reportProgress: true,\r\n });\r\n return this.httpClient.request(req);\r\n\r\n }\r\n\r\n descargarArchivo(ruta: string, propiedad?: string, aplicacion?: string): Observable<Blob> {\r\n let url2 = this.cookieService.get('urlnucleo')\r\n const url = `${url2}/requieretoken/general/obtenerRecursoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;\r\n console.log('URL: ' + url)\r\n return this.httpClient.get(url, {\r\n responseType: 'blob'\r\n })\r\n }\r\n\r\n eliminarArchivo(ruta: string, propiedad: string, aplicacion: string): Observable<Blob> {\r\n let url2 = this.cookieService.get('urlnucleo')\r\n const url = `${url2}/requieretoken/general/eliminarArchivoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;\r\n return this.httpClient.get(url, {\r\n responseType: 'blob'\r\n });\r\n }\r\n\r\n getPropiedad(peticion: any): Observable<any> {\r\n let url2 = this.cookieService.get('urlnucleo')\r\n return this.httpClient.post<any>(`${url2}/requieretoken/general/obtenerPropiedad`, peticion);\r\n }\r\n\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dashboardPipe',\r\n standalone: true\r\n})\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class DashboardPipe implements PipeTransform {\r\n\r\n\tGRAFICO = 'G';\r\n\tCOMPONENTE = 'C';\r\n\tTABLA = 'T';\r\n\tIFRAME = 'I';\r\n\t\r\n\tDESCGRAFICO = 'Gráfico';\r\n\tDESCCOMPONENTE = 'Componente';\r\n\tDESCTABLA = 'Tabla';\r\n\tDESCIFRAME = 'Iframe';\r\n\r\n\tMAPATIPO = [\r\n\t\t{ nombre: this.DESCGRAFICO, codigo: this.GRAFICO },\r\n\t\t{ nombre: this.DESCCOMPONENTE, codigo: this.COMPONENTE },\r\n\t\t{ nombre: this.DESCTABLA, codigo: this.TABLA },\r\n\t\t{ nombre: this.DESCIFRAME, codigo: this.IFRAME }\r\n\t];\r\n\r\n\tDIAGRAMA_BARRAS = 'B';\r\n\tDIAGRAMA_BARRAS_HOR = 'H';\r\n\tDIAGRAMA_TORTA = 'T';\r\n\tDIAGRAMA_AREA = 'A';\r\n\tDIAGRAMA_RADAR = 'R';\r\n\tDIAGRAMA_POLAR = 'P';\r\n\tDIAGRAMA_DONA = 'D';\r\n\tDIAGRAMA_BARRAS_STRING = 'Diagrama de barras Vertifical';\r\n\tDIAGRAMA_BARRAS_HOR_STRING = 'Diagrama de barras Horizontal';\r\n\tDIAGRAMA_TORTA_STRING = 'Diagrama de Torta';\r\n\tDIAGRAMA_AREA_STRING = 'Diagrama de Area';\r\n\tDIAGRAMA_RADAR_STRING = 'Diagrama de Radar';\r\n\tDIAGRAMA_POLAR_STRING = 'Diagrama de Polar';\r\n\tDIAGRAMA_DONA_STRING = 'Diagrama de Dona';\r\n\t\r\n\tTIPO_GRAFICO = [\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, nombre: this.DIAGRAMA_BARRAS_HOR_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_POLAR, nombre: this.DIAGRAMA_POLAR_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_DONA, nombre: this.DIAGRAMA_DONA_STRING},\r\n\t\t{ codigo: this.DIAGRAMA_RADAR, nombre: this.DIAGRAMA_RADAR_STRING},\r\n\t];\r\n\r\n\tBAR = 'bar';\r\n\tPIE = 'pie';\r\n\tLINE = 'line';\r\n\tPOLARAREA = 'polarArea';\r\n\tDOUGHNUT = 'doughnut';\r\n\tRADAR = 'radar';\r\n\r\n\tTIPO_GRAFICO_CHART = [\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS, codigoChart: this.BAR},\r\n\t\t{ codigo: this.DIAGRAMA_BARRAS_HOR, codigoChart: this.BAR},\r\n\t\t{ codigo: this.DIAGRAMA_TORTA, codigoChart: this.PIE},\r\n\t\t{ codigo: this.DIAGRAMA_AREA, codigoChart: this.LINE },\r\n\t\t{ codigo: this.DIAGRAMA_POLAR, codigoChart: this.POLARAREA},\r\n\t\t{ codigo: this.DIAGRAMA_DONA, codigoChart: this.DOUGHNUT},\r\n\t\t{ codigo: this.DIAGRAMA_RADAR, codigoChart: this.RADAR},\r\n\t];\r\n\r\n\ttransform(value: any, ...args: any): any {\r\n\t\tlet result = value;\r\n\r\n\t\tif (args[0] == 'listaTipo') { this.MAPATIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\tif (args[0] == 'listaTipoGrafico') { this.TIPO_GRAFICO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\r\n\t\treturn result;\r\n\t}\r\n}","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { ErrorIntecertorService } from '../../core/servicios/error-interceptor.service';\r\nimport { UtilsService } from '../../core/servicios/utils.service';\r\nimport { GeneralModel } from '../../seguridad/modelos/GeneralModel';\r\nimport { DashboardPipe } from '../pipes/dashboard.pipe';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n\r\n\r\n listProcedure(objetoFiltro: GeneralModel) {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService, private dashboardPipe: DashboardPipe) {\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.status === 500) {\r\n //Llamado a interceptor\r\n this.errorInterceptor.showError(JSON.stringify(error.error));\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong.\r\n console.error(\r\n `Backend returned code ${error.status}, body was: `, error.error);\r\n }\r\n // Return an observable with a user-facing error message.\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n }\r\n\r\n\r\n consultarDashboard(): Observable<any>{\r\n return this.httpClient.get(`${this.utilsService.obtenerUrlApi()}/requieretoken/dashboard/consultarDashboard`).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n cargarGrafica(columna) {\r\n console.log('cargar grafica')\r\n console.log(columna)\r\n switch (columna.accion) {\r\n case this.dashboardPipe.DIAGRAMA_BARRAS:\r\n columna = this.cargarDiagramaBarras(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_BARRAS_HOR:\r\n columna = this.cargarDiagramaBarrasHorizontal(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_TORTA:\r\n columna = this.cargarDiagramaBarrasTorta(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_AREA:\r\n columna = this.cargarDiagramaArea(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_POLAR:\r\n columna = this.cargarDiagramaPolar(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_DONA:\r\n columna = this.cargarDiagramaDona(columna);\r\n break;\r\n case this.dashboardPipe.DIAGRAMA_RADAR:\r\n columna = this.cargarDiagramaRadar(columna);\r\n break;\r\n default:\r\n break;\r\n }\r\n return columna;\r\n }\r\n\r\n cargarDiagramaBarras(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: columna.datosGrafica.datasets\r\n };\r\n columna.datosGrafica.options = {\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.8,\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n cargarDiagramaBarrasHorizontal(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n console.log(columna)\r\n\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: columna.datosGrafica.datasets\r\n };\r\n columna.datosGrafica.options = {\r\n indexAxis: 'y',\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.8,\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n cargarDiagramaBarrasTorta(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: [\r\n {\r\n data: columna.datosGrafica.data,\r\n backgroundColor: columna.datosGrafica.backgroundColor\r\n }\r\n ]\r\n };\r\n columna.datosGrafica.options = {\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n usePointStyle: true,\r\n color: \"#2980B9\",\r\n }\r\n }\r\n }\r\n };\r\n return columna;\r\n }\r\n \r\n cargarDiagramaArea(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: columna.datosGrafica.datasets\r\n };\r\n columna.datosGrafica.options = {\r\n stacked: false,\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.6,\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n cargarDiagramaPolar(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: [\r\n {\r\n data: columna.datosGrafica.data,\r\n backgroundColor: columna.datosGrafica.backgroundColor\r\n }\r\n ]\r\n };\r\n columna.datosGrafica.options = {\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n cargarDiagramaDona(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: [\r\n {\r\n data: columna.datosGrafica.data,\r\n backgroundColor: columna.datosGrafica.backgroundColor\r\n }\r\n ]\r\n };\r\n columna.datosGrafica.options = {\r\n cutout: '60%',\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n cargarDiagramaRadar(columna) {\r\n columna.datosGrafica.total = columna.datosGrafica.datasets[0].data.reduce((acumulador, valorActual) => acumulador + valorActual, 0);\r\n columna.datosGrafica.data = {\r\n labels: columna.datosGrafica.labels,\r\n datasets: columna.datosGrafica.datasets\r\n };\r\n columna.datosGrafica.options = {\r\n plugins: {\r\n title: {\r\n display: true,\r\n text: columna.datosGrafica.title\r\n },\r\n legend: {\r\n labels: {\r\n color: \"#2980B9\",\r\n }\r\n }\r\n },\r\n };\r\n return columna;\r\n }\r\n\r\n}","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\r\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\r\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { FuentePipe } from '../../../pipes/fuente.pipe';\r\nimport { ReporteColumnarioPipe } from '../../../pipes/reporte-columnario.pipe';\r\nimport { ReporteColumnaModel } from '../../../../seguridad/modelos/ReporteColumna';\r\nimport { ReporteMarcadorModel } from '../../../../seguridad/modelos/ReporteMarcador';\r\nimport { ReporteTablaModel } from '../../../../seguridad/modelos/ReporteTabla';\r\nimport { ReporteColumnarioModel } from '../../../../seguridad/modelos/ReporteColumnario';\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { ReporteColumnarioMarcadorModel } from '../../../../seguridad/modelos/ReporteColumnarioMarcador';\r\nimport { ReporteBandaModel } from '../../../../seguridad/modelos/ReporteBanda';\r\nimport { ReporteSoporteModel } from '../../../../seguridad/modelos/ReporteSoporte';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { PickListModule } from 'primeng/picklist';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { DashboardService } from '../../../services/dashboard.service';\r\nimport { ChartModule } from 'primeng/chart';\r\nimport { DashboardPipe } from '../../../pipes/dashboard.pipe';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\n\r\n@Component({\r\n selector: 'detalle-tipo-reporte',\r\n imports: [TranslateModule, TableModule, TabViewModule, InputHelperSeleccionPlantillaComponent, ReporteColumnarioPipe, ReporteFuentePipe, DropdownModule, FormsModule, ReactiveFormsModule, CommonModule, ButtonModule, PickListModule, FieldsetModule, AccordionModule, InputTextModule, InputTextareaModule, FloatLabelModule, InputNumberModule, FieldsetModule, ChartModule, ColorPickerModule], \r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './detalle-tipo-reporte.component.html',\r\n styleUrls: ['./detalle-tipo-reporte.component.scss']\r\n})\r\nexport class DetalleTipoReporteComponent implements OnInit, OnDestroy {\r\n\r\n public listaTipoCifrado: any[] = [];\r\n //tab excel\r\n public listaExcel: ReporteColumnaModel[] = [];\r\n public listaNoExcel: ReporteColumnaModel[] = [];\r\n public listaMarcadorExcel: ReporteMarcadorModel[] = [];\r\n public reporteMarcadorExcel: ReporteMarcadorModel = new ReporteMarcadorModel;\r\n public formMarcadorExcel: FormGroup;\r\n public verNuevoMarcadorExcel: boolean = false;\r\n public esMarcador: boolean = false;\r\n public esImagenFija: boolean = false;\r\n\r\n //tab plantillas\r\n public listaColumnas: any[] = [];\r\n public listaMarcadores: ReporteMarcadorModel[] = [];\r\n public listaTipoMarcador;\r\n public listaTipoGrafico_JFC;\r\n public listaGrafico;\r\n public listaGraficoSencillo;\r\n public listaAlineacion;\r\n public listaOperaciones;\r\n public reporteMarcador: ReporteMarcadorModel = new ReporteMarcadorModel;\r\n public formMarcador: FormGroup;\r\n public origenMarcador: string = null;\r\n public verNuevoMarcador: boolean = false;\r\n public listaCamposMarcador: ReporteTablaModel[] = [];\r\n public campoMarcadorInsertar: ReporteTablaModel = new ReporteTablaModel;\r\n public listaSoportes: ReporteSoporteModel[] = [];\r\n public soporteIngresar: ReporteSoporteModel = new ReporteSoporteModel;\r\n public clickGuardarMarcadorCampo: boolean = false\r\n public clickGuardarMarcadorExcel: boolean = false;\r\n public verReporteMarcadorDetalle: boolean = false;\r\n public verSoporteArchivoDetalle: boolean = false;\r\n public clickGuardarSoporteArchivo: boolean = false;\r\n public habilitaCampo: boolean = false;\r\n\r\n //reporte dinamico\r\n public listaTipoBanda = [\r\n {key: 'banda1', value: 'Banda 1'},\r\n {key: 'banda2', value: 'Banda 2'},\r\n {key: 'banda3', value: 'Banda 3'},\r\n {key: 'banda4', value: 'Banda 4'},\r\n {key: 'banda5', value: 'Banda 5'},\r\n {key: 'detalle', value: 'Detalle'},\r\n {key: 'summary', value: 'Resumen'},\r\n ]\r\n public existeJasper: boolean = false;\r\n public bandaSeleccionada = {key: null, value: null};\r\n public nuevaBanda: boolean = false;\r\n public verTabBanda: boolean = false;\r\n public nuevoReporteMarcadorDinamico: boolean = false;\r\n public reporteMarcadorDinamico: ReporteMarcadorModel = new ReporteMarcadorModel;\r\n public reporteBanda: ReporteBandaModel = new ReporteBandaModel;\r\n public formReporteDinamico: FormGroup;\r\n public listaMarcadorDinamico: ReporteMarcadorModel[] = []\r\n public listaTipoCampoJasperDinamico = [\r\n {key: 'C', value: 'Calculo'},\r\n {key: 'T', value: 'Columna'},\r\n ]\r\n public listaTipoDatoSintaxis = [\r\n {key: 'F', value: 'Fecha'},\r\n {key: 'N', value: 'Numero'},\r\n {key: 'T', value: 'Texto'},\r\n ]\r\n\r\n //reporte tabla\r\n public listaTabla: ReporteColumnaModel[] = [];\r\n public listaNoTabla: ReporteColumnaModel[] = [];\r\n \r\n\r\n //reporte texto\r\n public listaSeparadores;\r\n public clickGuardarReporteTexto: boolean = false;\r\n public listaMarcadoresTexto: ReporteMarcadorModel[] = [];\r\n public marcadorTexto: ReporteMarcadorModel = new ReporteMarcadorModel()\r\n public verNuevoMarcadorTexto: boolean = false;\r\n public listaTipoMarcadorTexto;\r\n public clickGuardarMarcadorTexto: boolean = false\r\n\r\n //reporte XML\r\n public listaTipoMarcadorXML;\r\n public listaXML: ReporteMarcadorModel[] = []\r\n public marcadorXML: ReporteMarcadorModel = new ReporteMarcadorModel\r\n public clickGuardarMarcadorXML: boolean = false;\r\n public verNuevoMarcadorXML: boolean = false;\r\n public listaCamposMarcadorXML: ReporteTablaModel[] = [];\r\n public campoMarcadorInsertarXML: ReporteTablaModel = new ReporteTablaModel;\r\n public verReporteMarcadorDetalleXML: boolean = false;\r\n public clickGuardarMarcadorCampoXML: boolean = false;\r\n\r\n //reporte columnario\r\n public listaReporteColumnario: ReporteColumnarioModel[] = [];\r\n public verNuevoReporteColumnario: boolean = false;\r\n public columnaBasica: ReporteColumnarioModel;\r\n public clickGuardarReporteColumnario: boolean = false;\r\n public listaTipoColumnas;\r\n public listaOperacionesColumnario;\r\n public listaOperacionesExcelColumnario;\r\n public listaOrdenamiento;\r\n\r\n public verNuevoColumnaAdicional: boolean = false;\r\n public clickGuardarColumnaAdicional: boolean = false;\r\n public columnasAdicionales: ReporteColumnarioModel[] = [];\r\n public columnaAdicional: ReporteColumnarioModel;\r\n\r\n public listaTipoMarcadorColumnario;\r\n public verNuevoMarcadorColumnario: boolean = false;\r\n public clickGuardarMarcadorColumnario: boolean = false;\r\n public marcadoresColumnario: ReporteColumnarioMarcadorModel[] = [];\r\n public marcadorColumnario: ReporteColumnarioMarcadorModel;\r\n\r\n //grafica\r\n public listaTipoGrafico;\r\n public paginadorColumnas: ReporteColumnaModel[] = [];\r\n public paginadorColoresGrafica: ReporteBandaModel[] = [];\r\n public colorCategoria: ReporteBandaModel = new ReporteBandaModel();\r\n public verColorCategoriaDetalle: boolean = false;\r\n public clickGuardarColorCategoria: boolean = false;\r\n public grafica;\r\n public tipoGrafica: \"bar\" | \"line\" | \"scatter\" | \"bubble\" | \"pie\" | \"doughnut\" | \"polarArea\" | \"radar\";\r\n\r\n public reporteFuente : ReporteFuenteModel = new ReporteFuenteModel();\r\n public llaveEmpresa: string;\r\n public listaSiNo;\r\n @Input() public llaveReporte : string;\r\n @Input() public aplicacion : string;\r\n @Input() public listaFuentes: any[] = [];\r\n\r\n _subsciprtions: Subscription[] = [];\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private notificacionesBusService: ToastService,\r\n private generalService: GeneralService,\r\n private generalPipe: GeneralPipe,\r\n private authService: AuthService,\r\n private reporteFuentePipe: ReporteFuentePipe,\r\n private confirmationService: ConfirmationService,\r\n private cargarArchivo: CargarArchivosService,\r\n private encriptadorArchivo: EncriptadoBasicoService,\r\n public utilsService: UtilsService,\r\n private translateService: TranslateService,\r\n private fuentePipe: FuentePipe,\r\n private reporteColumnarioPipe: ReporteColumnarioPipe,\r\n private reporteService: EjecucionReporteService,\r\n private dashboardService: DashboardService,\r\n private dashboardPipe: DashboardPipe,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.aplicacion = this.authService.getTokenKey('aplicacion')\r\n this.llaveEmpresa = this.authService.getTokenKey('llaveEmpresa');\r\n this.listaSiNo = this.generalPipe.LISTA_SINO;\r\n this.listaTipoMarcadorColumnario = this.reporteColumnarioPipe.MAPA_TIPO_MARCADOR;\r\n this.listaTipoColumnas = this.reporteColumnarioPipe.MAPA_TIPO_COLUMNAS;\r\n this.listaOperacionesColumnario = this.reporteColumnarioPipe.MAPA_OPERACIONES_COLUMNARIO;\r\n this.listaOperacionesExcelColumnario = this.reporteColumnarioPipe.MAPA_OPERACIONES_COLUMNARIO_EXCEL;\r\n this.listaOrdenamiento = this.reporteColumnarioPipe.MAPA_ORDENAMIENTO;\r\n this.listaSeparadores = this.fuentePipe.LISTA_SEPARADORES;\r\n this.listaTipoMarcador = this.reporteFuentePipe.LISTA_MARCADORES;\r\n this.listaTipoGrafico_JFC = this.reporteFuentePipe.LISTA_TIPO_GRAFICO_JFC;\r\n this.listaGrafico = this.reporteFuentePipe.LISTA_RECURSO_GRAFICA;\r\n this.listaGraficoSencillo = this.reporteFuentePipe.RECURSO_GRAFICA;\r\n this.listaAlineacion = this.reporteFuentePipe.LISTA_ALINEACION;\r\n this.listaOperaciones = this.generalPipe.MAPAOPERACIONES;\r\n this.listaTipoMarcadorTexto = this.reporteFuentePipe.TIPOMARCADORESTEXTO;\r\n this.listaTipoMarcadorXML = this.reporteFuentePipe.LISTA_MARCADORES_XML;\r\n this.listaTipoGrafico = this.reporteFuentePipe.LISTA_TIPO_GRAFICO;\r\n this.cargar();\r\n this.cargarFormMarcadorExcel();\r\n this.cargarFormMarcador();\r\n this.cargarFormDinamico();\r\n this.agregarSubscripciones();\r\n //this.cargarListas();\r\n\r\n }\r\n\r\n ngOnDestroy(){\r\n this._subsciprtions.forEach((sub) => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n\r\n agregarSubscripciones() {\r\n this._subsciprtions.push(\r\n this.formMarcadorExcel.get('tipo').valueChanges.subscribe((value) => {\r\n const textoRegistroControl = this.formMarcadorExcel.get('textoRegistro');\r\n const origenControl = this.formMarcadorExcel.get('origen');\r\n if (!value){\r\n this.esImagenFija = true;\r\n this.esMarcador = true;\r\n origenControl.clearValidators();\r\n textoRegistroControl.clearValidators();\r\n } else if (['MA'].includes(value)) {\r\n this.esImagenFija = false;\r\n this.esMarcador = true;\r\n textoRegistroControl.setValidators(Validators.required);\r\n origenControl.clearValidators();\r\n } else if (['IF'].includes(value)) {\r\n this.esImagenFija = true;\r\n this.esMarcador = false;\r\n origenControl.setValidators(Validators.required);\r\n textoRegistroControl.setValidators(Validators.required);\r\n }\r\n textoRegistroControl.updateValueAndValidity();\r\n origenControl.updateValueAndValidity();\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formMarcador.get('tipo').valueChanges.subscribe((value) => {\r\n console.log('entra a tipo: ')\r\n console.log(value)\r\n this.formMarcador.clearValidators();\r\n this.reporteMarcador.tipo = value;\r\n if (this.reporteMarcador.tipo == this.reporteFuentePipe.MARCADORTABLA){\r\n // this.reporteMarcador.tieneSql = 'N'\r\n // this.formMarcador.get('tieneSql').setValue('N')\r\n }\r\n this.formMarcador.updateValueAndValidity();\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formMarcador.get('origen').valueChanges.subscribe((value) => {\r\n this.formMarcador.clearValidators();\r\n this.reporteMarcador.origen = value;\r\n this.formMarcador.updateValueAndValidity();\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formMarcador.get('tieneSql').valueChanges.subscribe((value) => {\r\n console.log('entra a tieneSql: ')\r\n console.log(value)\r\n this.formMarcador.clearValidators();\r\n this.reporteMarcador.tieneSql = value;\r\n this.formMarcador.updateValueAndValidity();\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formMarcador.get('tipoGrafico').valueChanges.subscribe((value) => {\r\n this.formMarcador.clearValidators();\r\n this.reporteMarcador.tipoGrafico = value;\r\n this.formMarcador.updateValueAndValidity();\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formMarcadorExcel.get('origen').valueChanges.subscribe((value) => {\r\n if (['U'].includes(value)) {\r\n this.reporteMarcadorExcel.origen = 'U'\r\n } else if (['C'].includes(value)) {\r\n this.reporteMarcadorExcel.origen = 'C' \r\n }\r\n })\r\n );\r\n\r\n this._subsciprtions.push(\r\n this.formReporteDinamico.get('tipoCampo').valueChanges.subscribe((value) => {\r\n this.reporteMarcadorDinamico.tipoCampo = value;\r\n const resultadoXControl = this.formReporteDinamico.get('resultadoX');\r\n const resultadoYControl = this.formReporteDinamico.get('resultadoY'); \r\n if (this.bandaSeleccionada.key != 'detalle') {\r\n resultadoXControl.setValidators(Validators.required);\r\n resultadoYControl.setValidators(Validators.required);\r\n } else {\r\n resultadoXControl.clearValidators();\r\n resultadoYControl.clearValidators();\r\n } \r\n \r\n const marcadorControl = this.formReporteDinamico.get('marcador');\r\n const filtroControl = this.formReporteDinamico.get('filtro');\r\n const tipoDatoControl = this.formReporteDinamico.get('tipoDato');\r\n if (this.reporteMarcadorDinamico.tipoCampo == 'T') {\r\n marcadorControl.setValidators(Validators.required);\r\n filtroControl.clearValidators();\r\n tipoDatoControl.clearValidators();\r\n } else {\r\n marcadorControl.clearValidators();\r\n filtroControl.setValidators(Validators.required);\r\n tipoDatoControl.setValidators(Validators.required);\r\n }\r\n marcadorControl.updateValueAndValidity();\r\n filtroControl.updateValueAndValidity();\r\n tipoDatoControl.updateValueAndValidity();\r\n resultadoXControl.updateValueAndValidity();\r\n resultadoYControl.updateValueAndValidity();\r\n }),\r\n this.formReporteDinamico.get('tipoDato').valueChanges.subscribe((value) => {\r\n this.reporteMarcadorDinamico.tipoDato = value\r\n })\r\n );\r\n }\r\n\r\n cambiarTab(event){\r\n switch (event.index) {\r\n case 0:\r\n this.cargar();\r\n this.cargarListasExcel();\r\n break;\r\n case 1:\r\n this.cargarListaMarcadores();\r\n if (this.reporteFuente.unicoArchivo == 'N'){\r\n this.cargarListaSoportes();\r\n }\r\n break;\r\n case 2:\r\n this.validarExisteJasper();\r\n break;\r\n case 3:\r\n this.cargarListaMarcadoresTexto();\r\n break;\r\n case 4:\r\n this.cargarListasTabla();\r\n break;\r\n case 5:\r\n this.cargarListaXML();\r\n break;\r\n case 6:\r\n this.cargarReporteColumnario();\r\n break;\r\n case 7:\r\n this.cargarGraficasColumnas();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n cargarListasTabla(){\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {buscarOrdenTabla: 'S', ordenarTabla: 'S', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaTabla = data;\r\n })\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {buscarOrdenTabla: 'N', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaNoTabla = data;\r\n })\r\n }\r\n\r\n cargarListaMarcadores(){\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'P', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\r\n this.listaMarcadores = data;\r\n }) \r\n }\r\n\r\n cargarListasExcel(){\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {ordenExcel: 'S', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaExcel = data;\r\n })\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {ordenExcel: 'N', reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaNoExcel = data;\r\n })\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\r\n this.listaMarcadorExcel = data;\r\n })\r\n }\r\n\r\n cargarListaColumnas(){\r\n this.listaColumnas = [];\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.listaColumnas = data;\r\n })\r\n }\r\n\r\n cargarListas(){\r\n this.listaTipoCifrado = [];\r\n this.generalService.queryForList(new GeneralModel('EncripcionArchivoDTO', null, false, {})).subscribe(data => {\r\n this.listaTipoCifrado = data;\r\n })\r\n this.cargarListaColumnas();\r\n }\r\n\r\n cargarFormMarcadorExcel(){\r\n this.formMarcadorExcel = this.formBuilder.group({\r\n descripcion: new FormControl(this.reporteMarcadorExcel.descripcion, [Validators.required, Validators.maxLength(100)]),\r\n marcador: new FormControl(this.reporteMarcadorExcel.marcador, [Validators.required, Validators.maxLength(50)]),\r\n tipo: new FormControl(this.reporteMarcadorExcel.tipo, [Validators.required]),\r\n textoRegistro: new FormControl(this.reporteMarcadorExcel.textoRegistro),\r\n origen: new FormControl(this.reporteMarcadorExcel.origen),\r\n //campos bd\r\n llave: new FormControl(this.reporteMarcadorExcel.llave),\r\n reporteFuente: new FormControl(this.reporteFuente.llave),\r\n tipoReporte: new FormControl('E') \r\n })\r\n }\r\n\r\n cargarFormMarcador(){\r\n this.formMarcador = this.formBuilder.group({\r\n descripcion: new FormControl(this.reporteMarcador.descripcion, [Validators.required, Validators.maxLength(100)]),\r\n tipo: new FormControl(this.reporteMarcador.tipo, [Validators.required]),\r\n marcador: new FormControl(this.reporteMarcador.marcador, [Validators.maxLength(50)]),\r\n tabla: new FormControl(this.reporteMarcador.tabla),\r\n origen: new FormControl(this.reporteMarcador.origen),\r\n textoRegistro: new FormControl(this.reporteMarcador.textoRegistro),\r\n reporteColumna: new FormControl(this.reporteMarcador.reporteColumna),\r\n formato: new FormControl(this.reporteMarcador.formato),\r\n ancho: new FormControl(this.reporteMarcador.ancho),\r\n alto: new FormControl(this.reporteMarcador.alto),\r\n grupo1: new FormControl(this.reporteMarcador.grupo1),\r\n grupo2: new FormControl(this.reporteMarcador.grupo2),\r\n grupo3: new FormControl(this.reporteMarcador.grupo3),\r\n finalGrupo: new FormControl(this.reporteMarcador.finalGrupo),\r\n tieneSql: new FormControl(this.reporteMarcador.tieneSql),\r\n query: new FormControl(this.reporteMarcador.query),\r\n fuente: new FormControl(this.reporteMarcador.fuente),\r\n tipoGrafico: new FormControl(this.reporteMarcador.tipoGrafico),\r\n marcadorGrafico: new FormControl(this.reporteMarcador.marcadorGrafico),\r\n titulox: new FormControl(this.reporteMarcador.titulox),\r\n tituloy: new FormControl(this.reporteMarcador.tituloy),\r\n banda: new FormControl(this.reporteMarcador.banda),\r\n anchoJasperLabel: new FormControl(this.reporteMarcador.anchoJasperLabel),\r\n filtro: new FormControl(this.reporteMarcador.filtro),\r\n //campos bd\r\n llave: new FormControl(this.reporteMarcador.llave),\r\n reporteFuente: new FormControl(this.reporteFuente.llave),\r\n tipoReporte: new FormControl('N') \r\n })\r\n }\r\n\r\n cargarFormDinamico(){\r\n this.formReporteDinamico = this.formBuilder.group({\r\n tipoCampo: new FormControl(this.reporteMarcadorDinamico.tipoCampo, [Validators.required]),\r\n tipoDato: new FormControl(this.reporteMarcadorDinamico.tipoDato),\r\n filtro: new FormControl(this.reporteMarcadorDinamico.filtro),\r\n marcador: new FormControl(this.reporteMarcadorDinamico.marcador),\r\n alto: new FormControl(this.reporteMarcadorDinamico.alto, [Validators.required]),\r\n formato: new FormControl(this.reporteMarcadorDinamico.formato),\r\n descripcion: new FormControl(this.reporteMarcadorDinamico.descripcion),\r\n ancho: new FormControl(this.reporteMarcadorDinamico.ancho, [Validators.required]),\r\n anchoJasperLabel: new FormControl(this.reporteMarcadorDinamico.anchoJasperLabel),\r\n resultadoX: new FormControl(this.reporteMarcadorDinamico.resultadoX ),\r\n resultadoY: new FormControl(this.reporteMarcadorDinamico.resultadoY ),\r\n titulox: new FormControl(this.reporteMarcadorDinamico.titulox),\r\n tituloy: new FormControl(this.reporteMarcadorDinamico.tituloy),\r\n tipoReporte: new FormControl(this.reporteMarcadorDinamico.tipoReporte, [Validators.required]),\r\n tipoGrafico: new FormControl(this.reporteMarcadorDinamico.tipoGrafico), \r\n operacion: new FormControl(this.reporteMarcadorDinamico.operacion), \r\n //campos tabla\r\n origen: new FormControl('D'),\r\n banda: new FormControl(this.bandaSeleccionada.key),\r\n reporteFuente: new FormControl(this.reporteFuente.llave),\r\n llave: new FormControl(this.reporteMarcadorDinamico.llave),\r\n\r\n })\r\n }\r\n\r\n cargar(){\r\n this.existeJasper = false;\r\n if (this.llaveReporte){\r\n this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, {llave: this.llaveReporte})).subscribe(data => {\r\n this.reporteFuente = data;\r\n this.cargarListasExcel();\r\n this.cargarListas();\r\n })\r\n }\r\n }\r\n\r\n public actualizar(){\r\n if (this.reporteFuente.llave){\r\n this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporteFuente)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n if (this.reporteFuente.unicoArchivo == 'N'){\r\n }\r\n });\r\n } else {\r\n this.reporteService.guardarReporte(this.reporteFuente).subscribe(data => {\r\n this.reporteFuente = data;\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n });\r\n }\r\n }\r\n\r\n obtenerArchivo(event){\r\n this.reporteFuente.archivoTodo = event.data\r\n }\r\n\r\n obtenerArchivoMarcadorExcel(event){\r\n this.reporteMarcador.textoRegistro = event.data\r\n }\r\n\r\n obtenerArchivoMarcador(event){\r\n this.reporteMarcador.textoRegistro = event.data\r\n }\r\n\r\n obtenerArchivoPlanilla(event){\r\n this.reporteFuente.archivoIndividual = event.data\r\n }\r\n\r\n obtenerArchivoSoporte(event, soporte){\r\n soporte.archivoIndividual = event.data\r\n }\r\n\r\n obtenerArchivoColumnario(event){\r\n this.reporteFuente.archivoExcelColumnario = event.data\r\n }\r\n\r\n\r\n moverAAsociado(event){\r\n this.reporteService.actualizarReporteColumnaOrden({\r\n listaAsociado: this.listaExcel,\r\n excel: true\r\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\r\n }\r\n\r\n moverADesasociado(event){\r\n this.reporteService.actualizarReporteColumnaOrden({\r\n listaDesasociado: this.listaNoExcel,\r\n excel: true\r\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\r\n }\r\n\r\n moverAAsociadoTabla(event){\r\n this.reporteService.actualizarReporteColumnaOrden({\r\n listaAsociado: this.listaTabla,\r\n excel: false\r\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\r\n }\r\n\r\n moverADesasociadoTabla(event){\r\n this.reporteService.actualizarReporteColumnaOrden({\r\n listaDesasociado: this.listaNoTabla,\r\n excel: false\r\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\r\n }\r\n\r\n reorderTabla(event){\r\n this.reporteService.actualizarReporteColumnaOrden({\r\n listaAsociado: this.listaTabla,\r\n excel: false\r\n }).subscribe(data => {this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS)})\r\n }\r\n\r\n verDetalleMarcadorExcel(event){\r\n this.formMarcadorExcel.reset();\r\n this.verNuevoMarcadorExcel = true;\r\n this.reporteMarcadorExcel = event.data;\r\n this.formMarcadorExcel.patchValue(this.reporteMarcadorExcel)\r\n }\r\n\r\n nuevoMarcadorExcel(){\r\n this.formMarcadorExcel.reset();\r\n this.verNuevoMarcadorExcel = true;\r\n this.esMarcador = false;\r\n this.esImagenFija = false;\r\n this.reporteMarcadorExcel = new ReporteMarcadorModel();\r\n this.formMarcadorExcel.patchValue(this.reporteMarcadorExcel)\r\n this.formMarcadorExcel.get('tipo').setValue(null)\r\n }\r\n\r\n guardarMarcadorExcel(){\r\n this.clickGuardarMarcadorExcel = true;\r\n if (this.formMarcadorExcel.valid){\r\n let llaveRegistro = this.formMarcadorExcel.get('llave').value\r\n this.formMarcadorExcel.get('reporteFuente').setValue(this.reporteFuente.llave)\r\n this.formMarcadorExcel.get('tipoReporte').setValue('E')\r\n if (llaveRegistro){\r\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcadorExcel.value)).subscribe( data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\r\n this.listaMarcadorExcel = data;\r\n })\r\n })\r\n } else {\r\n this.formMarcadorExcel.get('llave').setValue(this.utilsService.generarLlave())\r\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcadorExcel.value)).subscribe( data => { \r\n this.verNuevoMarcadorExcel = false \r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\r\n this.listaMarcadorExcel = data;\r\n })\r\n })\r\n }\r\n this.clickGuardarMarcadorExcel = false;\r\n } else {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n Object.keys(this.formMarcadorExcel.controls).forEach((key) => {\r\n if (this.formMarcadorExcel.get(key).errors) {\r\n this.formMarcadorExcel.get(key).markAsDirty();\r\n }\r\n });\r\n } \r\n }\r\n\r\n eliminarMarcadorExcel(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorExcel)).subscribe(data =>{\r\n this.formMarcadorExcel.reset();\r\n this.verNuevoMarcadorExcel = false;\r\n this.reporteMarcadorExcel = new ReporteMarcadorModel();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {tipoReporte: 'E', reporteFuente: this.reporteFuente.llave, ordenDinamico: this.generalPipe.SI})).subscribe(data => {\r\n this.listaMarcadorExcel = data;\r\n })\r\n })\r\n }\r\n })\r\n \r\n }\r\n\r\n //plantilla\r\n\r\n cargarListaCampoMarcador() {\r\n this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.reporteMarcador.llave})).subscribe(data => {\r\n this.listaCamposMarcador = data;\r\n })\r\n }\r\n\r\n async cargarListaCampoMarcadorAsync() {\r\n this.listaCamposMarcador = await this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.reporteMarcador.llave})).toPromise();\r\n }\r\n\r\n verDetalleMarcador(event){\r\n //this.formMarcador.reset();\r\n this.verNuevoMarcador = true;\r\n this.reporteMarcador = event.data;\r\n this.formMarcador.patchValue(this.reporteMarcador)\r\n this.formMarcador.get('tipo').setValue(this.reporteMarcador.tipo)\r\n \r\n this.cargarListaCampoMarcador();\r\n }\r\n\r\n nuevoMarcador(){\r\n //this.formMarcador.reset();\r\n this.formMarcador.reset({}, { emitEvent: false });\r\n\r\n this.verNuevoMarcador = true;\r\n this.reporteMarcador = new ReporteMarcadorModel();\r\n this.formMarcador.patchValue(this.reporteMarcador)\r\n this.formMarcador.get('tipoReporte').setValue('P')\r\n //this.formMarcador.get('tipo').setValue(null)\r\n }\r\n\r\n guardarMarcador(){\r\n if (this.formMarcador.valid){\r\n let llaveRegistro = this.formMarcador.get('llave').value\r\n this.formMarcador.get('reporteFuente').setValue(this.reporteFuente.llave)\r\n //this.formMarcador.get('tipoReporte').setValue('N')\r\n if (llaveRegistro){\r\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcador.value)).subscribe( data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.cargarListaMarcadores();\r\n if (this.reporteFuente.unicoArchivo == 'N'){\r\n this.cargarListaSoportes();\r\n }\r\n })\r\n } else {\r\n this.formMarcador.get('llave').setValue(this.utilsService.generarLlave())\r\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.formMarcador.value)).subscribe( data => { \r\n this.verNuevoMarcador = false;\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n this.cargarListaMarcadores();\r\n if (this.reporteFuente.unicoArchivo == 'N'){\r\n this.cargarListaSoportes();\r\n }\r\n })\r\n }\r\n } else {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n Object.keys(this.formMarcador.controls).forEach((key) => {\r\n if (this.formMarcador.get(key).errors) {\r\n this.formMarcador.get(key).markAsDirty();\r\n }\r\n });\r\n } \r\n }\r\n\r\n eliminarMarcador(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => { \r\n this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcador)).subscribe(data =>{\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\r\n this.formMarcador.reset();\r\n this.verNuevoMarcador = false;\r\n this.reporteMarcador = new ReporteMarcadorModel();\r\n this.cargarListaMarcadores();\r\n })\r\n }\r\n })\r\n }\r\n\r\n eliminarCampoMarcador(event, objeto){ \r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteTablaDTO', null, false, objeto)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.cargarListaCampoMarcador();\r\n })\r\n }\r\n })\r\n }\r\n\r\n nuevoCampoTabla(){\r\n this.verReporteMarcadorDetalle = true;\r\n this.campoMarcadorInsertar = new ReporteTablaModel();\r\n this.campoMarcadorInsertar.reporteMarcador = this.reporteMarcador.llave\r\n }\r\n\r\n validarCampoMarcador(campoMarcador){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.columna)\r\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.campoFuente)\r\n return validador;\r\n }\r\n\r\n agregarCampoMarcador(campoMarcador){\r\n this.clickGuardarMarcadorCampo = true;\r\n if (!this.validarCampoMarcador(campoMarcador)){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n campoMarcador.reporteMarcador = this.reporteMarcador.llave;\r\n if ('I' == campoMarcador.tipo){\r\n if (!campoMarcador.ancho || campoMarcador.ancho == 0){\r\n campoMarcador.ancho = 10;\r\n }\r\n if (!campoMarcador.alto || campoMarcador.alto == 0){\r\n campoMarcador.alto = 10;\r\n }\r\n }\r\n if (['G'].includes(campoMarcador.tipo)){\r\n campoMarcador.columna = 0;\r\n }\r\n if (campoMarcador.llave){\r\n this.generalService.update(new GeneralModel('ReporteTablaDTO', null, false, campoMarcador)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.clickGuardarMarcadorCampo = false;\r\n campoMarcador = new ReporteTablaModel;\r\n this.cargarListaCampoMarcador();\r\n })\r\n } else {\r\n campoMarcador.llave = this.utilsService.generarLlave();\r\n this.generalService.crearRegistro(new GeneralModel('ReporteTablaDTO', null, false, campoMarcador)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n this.clickGuardarMarcadorCampo = false;\r\n campoMarcador = new ReporteTablaModel;\r\n this.verReporteMarcadorDetalle = false;\r\n this.campoMarcadorInsertar = new ReporteTablaModel()\r\n this.cargarListaCampoMarcador();\r\n })\r\n }\r\n }\r\n\r\n cargarListaSoportes(){\r\n this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {reporteFuente: this.reporteFuente.llave, tipo: 'S'})).subscribe(data => {\r\n this.listaSoportes = data;\r\n })\r\n }\r\n\r\n async cargarListaSoportesAsync(){\r\n this.listaSoportes = await this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {reporteFuente: this.reporteFuente.llave, tipo: 'S'})).toPromise()\r\n }\r\n\r\n nuevoSoporte(){\r\n this.soporteIngresar = new ReporteSoporteModel();\r\n this.verSoporteArchivoDetalle = true;\r\n this.habilitaCampo = true;\r\n }\r\n\r\n cancelarSoporte() {\r\n this.soporteIngresar = new ReporteSoporteModel();\r\n this.verSoporteArchivoDetalle = false;\r\n this.habilitaCampo = false;\r\n }\r\n\r\n validarSoporte(soporte){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(soporte.descripcion)\r\n validador = validador && this.utilsService.validarCampoObligatorio(soporte.archivoIndividual)\r\n return validador;\r\n }\r\n\r\n agregarSoporte(soporte){\r\n this.clickGuardarSoporteArchivo = true;\r\n if (!this.validarSoporte(soporte)){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n if (!soporte.llaveTabla){\r\n soporte.tipo = 'S'\r\n soporte.reporteFuente = this.reporteFuente.llave\r\n this.generalService.crearRegistro(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n soporte = new ReporteSoporteModel;\r\n this.cargarListaSoportes();\r\n this.verSoporteArchivoDetalle = false;\r\n this.clickGuardarSoporteArchivo = false;\r\n })\r\n } else {\r\n this.generalService.update(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.cargarListaSoportes();\r\n this.verSoporteArchivoDetalle = false;\r\n this.clickGuardarSoporteArchivo = false;\r\n soporte = new ReporteSoporteModel;\r\n })\r\n }\r\n this.habilitaCampo = false;\r\n }\r\n\r\n eliminarSoporte(event, soporte){\r\n this.habilitaCampo = true;\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => { \r\n this.generalService.delete(new GeneralModel('ReporteSoporteDTO', null, false, soporte)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.cargarListaSoportes();\r\n this.habilitaCampo = false;\r\n })\r\n }\r\n })\r\n }\r\n\r\n iniciarEdicion() {\r\n this.habilitaCampo = true;\r\n }\r\n\r\n async cancelarEdicion() { \r\n this.cargarListaSoportesAsync(); \r\n this.habilitaCampo = false;\r\n \r\n }\r\n \r\n //Reporte Dinamico\r\n\r\n generarJasper(){\r\n this.reporteService.generarJasper(this.reporteFuente.llave, 'compensacion/ReportesBase') .subscribe({\r\n next: (data) => {\r\n this.notificacionesBusService.showSuccess('Se ha generado el jasper exitosamente')\r\n this.validarExisteJasper();\r\n }\r\n }); \r\n }\r\n\r\n\r\n descargarJasper() {\r\n\r\n let propiedad = 'ruta_plantillas';\r\n //Ruta archivo\r\n this.aplicacion = this.authService.getTokenKey('aplicacion')\r\n this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporteFuente.llave + '.jrxml'), propiedad, this.aplicacion).subscribe({\r\n next: blob => {\r\n const a = document.createElement('a')\r\n const objectUrl = URL.createObjectURL(blob)\r\n a.href = objectUrl\r\n a.download = this.reporteFuente.llave + '.jrxml' //documento.archivoorigen;\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n }\r\n });\r\n }\r\n\r\n nuevoMarcadorDinamico(){\r\n this.reporteMarcadorDinamico = new ReporteMarcadorModel\r\n this.reporteMarcadorDinamico.origen = 'D'\r\n this.reporteMarcadorDinamico.reporteFuente = this.reporteFuente.llave\r\n this.reporteMarcadorDinamico.banda = this.bandaSeleccionada.key\r\n this.formReporteDinamico.reset();\r\n this.formReporteDinamico.patchValue(this.reporteMarcadorDinamico)\r\n this.nuevoReporteMarcadorDinamico = true\r\n }\r\n\r\n verMarcadorDinamico(event){\r\n this.reporteMarcadorDinamico = event.data;\r\n this.formReporteDinamico.patchValue(this.reporteMarcadorDinamico)\r\n this.nuevoReporteMarcadorDinamico = true;\r\n }\r\n\r\n async verBanda(event){\r\n this.verTabBanda = false;\r\n this.bandaSeleccionada = event.data;\r\n this.reporteMarcadorDinamico = new ReporteMarcadorModel;\r\n this.nuevoReporteMarcadorDinamico = false;\r\n this.nuevaBanda = false;\r\n if (['detalle','summary'].includes(this.bandaSeleccionada.key)){\r\n await this.cargarListaMarcadorDinamico();\r\n } else {\r\n this.reporteBanda = await this.generalService.queryForObject(new GeneralModel('ReporteBandaDTO', null, false, {reporteFuente: this.reporteFuente.llave, banda: this.bandaSeleccionada.key})).toPromise();\r\n if (!this.reporteBanda) {\r\n this.nuevaBanda = true;\r\n if (['detalle','summary'].includes(this.bandaSeleccionada.key)){\r\n this.nuevaBanda = false;\r\n }\r\n this.reporteBanda = new ReporteBandaModel;\r\n this.reporteBanda.totales = 'S'\r\n } else {\r\n await this.cargarListaMarcadorDinamico()\r\n }\r\n }\r\n await this.sleep(25)\r\n this.verTabBanda = true;\r\n }\r\n\r\n async cargarListaMarcadorDinamico(){\r\n this.listaMarcadorDinamico = await this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\r\n reporteFuente: this.reporteFuente.llave, \r\n banda: this.bandaSeleccionada.key,\r\n ordenDinamico: 'S',\r\n origen: 'D'\r\n })).toPromise();\r\n }\r\n\r\n async guardarCaracteristicaBanda(){\r\n if(this.nuevaBanda) {\r\n this.reporteBanda.reporteFuente = this.reporteFuente.llave;\r\n this.reporteBanda.banda = this.bandaSeleccionada.key;\r\n this.reporteBanda = await this.generalService.crearRegistro(new GeneralModel('ReporteBandaDTO', null, false, this.reporteBanda)).toPromise();\r\n }else {\r\n await this.generalService.update(new GeneralModel('ReporteBandaDTO', null, false, this.reporteBanda)).toPromise();\r\n }\r\n await this.sleep(25)\r\n this.nuevaBanda=false;\r\n this.notificacionesBusService.showInfo(\"Se actualizaron las caracteristicas de \"+this.bandaSeleccionada.value);\r\n }\r\n\r\n async guardarColumnaDinamico(){\r\n if (!this.formReporteDinamico.valid) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n Object.keys(this.formReporteDinamico.controls).forEach((key) => {\r\n if (this.formReporteDinamico.get(key).errors) {\r\n this.formReporteDinamico.get(key).markAsDirty();\r\n }\r\n });\r\n return;\r\n }\r\n this.reporteMarcadorDinamico = this.formReporteDinamico.value;\r\n if(this.utilsService.isBlank(this.reporteMarcadorDinamico.llave)){\r\n this.reporteMarcadorDinamico.llave = this.utilsService.generarLlave();\r\n this.reporteMarcadorDinamico.origen = 'D';\r\n if(this.reporteMarcadorDinamico.tipoCampo == 'C'){\r\n this.reporteMarcadorDinamico.marcador = this.reporteMarcadorDinamico.filtro;\r\n this.reporteMarcadorDinamico.reporteColumna = null;\r\n }else{\r\n var columna = new ReporteColumnaModel();\r\n columna.llaveTabla = this.reporteMarcadorDinamico.marcador;\r\n columna = await this.generalService.queryForObject(new GeneralModel('ReporteColumnaDTO', null, false, columna)).toPromise();\r\n \r\n this.reporteMarcadorDinamico.marcador = columna.nombre;\r\n this.reporteMarcadorDinamico.reporteColumna = columna.llaveTabla;\r\n this.reporteMarcadorDinamico.filtro = columna.sintaxis;\r\n this.reporteMarcadorDinamico.tipoDato = columna.tipoDato;\r\n }\r\n await this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico)).toPromise();\r\n }else{\r\n if(this.reporteMarcadorDinamico.tipoCampo == 'C'){\r\n this.reporteMarcadorDinamico.marcador = this.reporteMarcadorDinamico.filtro;\r\n }\r\n await this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico)).toPromise();\r\n }\r\n this.reporteMarcadorDinamico = null;\r\n this.nuevoReporteMarcadorDinamico = false;\r\n await this.cargarListaMarcadorDinamico()\r\n this.notificacionesBusService.showInfo('Se ha guardado el cambio');\r\n }\r\n\r\n regresarBandaSeleccionada(){\r\n this.bandaSeleccionada = {key: null, value: null}\r\n }\r\n\r\n async eliminarColumnaDinamico(event) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: async () => {\r\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.reporteMarcadorDinamico )).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\r\n this.reporteMarcadorDinamico = new ReporteMarcadorModel()\r\n this.nuevoReporteMarcadorDinamico = false;\r\n await this.cargarListaMarcadorDinamico()\r\n }\r\n })\r\n }\r\n\r\n validarSeparador(){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporteFuente.separador);\r\n return validador;\r\n }\r\n\r\n actualizarSeparador(){\r\n this.clickGuardarReporteTexto = true;\r\n if (!this.validarSeparador()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n this.actualizar();\r\n }\r\n\r\n cargarListaMarcadoresTexto(){\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\r\n tipoReporte: this.reporteFuentePipe.REPORTEARCHIVOPLANO,\r\n reporteFuente: this.reporteFuente.llave,\r\n ordenDinamico: this.generalPipe.SI\r\n })).subscribe(data => {\r\n this.listaMarcadoresTexto = data;\r\n })\r\n }\r\n\r\n verMarcadorTexto(event){\r\n this.verNuevoMarcadorTexto = true;\r\n this.marcadorTexto = event.data;\r\n }\r\n\r\n nuevoMarcadorTexto(){\r\n this.verNuevoMarcadorTexto = true;\r\n this.marcadorTexto = new ReporteMarcadorModel();\r\n\t\tthis.marcadorTexto.tipoReporte = this.reporteFuentePipe.REPORTEARCHIVOPLANO;\r\n }\r\n\r\n validarMarcadorTexto() : boolean{\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.tipoGrafico);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.alto);\r\n if (this.reporteFuentePipe.MARCADORTEXTOFIJO == this.marcadorTexto.tipoGrafico){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.formato);\r\n }\r\n if (this.reporteFuentePipe.MARCADORTEXTODINAMICO == this.marcadorTexto.tipoGrafico){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.ancho);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorTexto.reporteColumna);\r\n }\r\n return validador;\r\n }\r\n\r\n async guardarMarcadorTexto(){\r\n this.clickGuardarMarcadorTexto = true;\r\n if (!this.validarMarcadorTexto()) {\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n this.clickGuardarMarcadorTexto = false;\r\n this.marcadorTexto.reporteFuente = this.reporteFuente.llave;\r\n if (this.marcadorTexto.llave){\r\n await this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n this.marcadorTexto.llave = this.utilsService.generarLlave();\r\n await this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n }\r\n this.cargarListaMarcadoresTexto();\r\n this.verNuevoMarcadorTexto = false;\r\n }\r\n\r\n eliminarMarcadoTexto(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: async () => {\r\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorTexto)).toPromise();\r\n this.verNuevoMarcadorTexto = false;\r\n this.marcadorTexto = new ReporteMarcadorModel();\r\n this.cargarListaMarcadoresTexto();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\r\n }\r\n })\r\n }\r\n\r\n cargarListaXML(){\r\n this.generalService.queryForList(new GeneralModel('ReporteMarcadorDTO', null, false, {\r\n tipoReporte: 'X',\r\n origen: 'X',\r\n reporteFuente: this.reporteFuente.llave,\r\n ordenDinamico: this.generalPipe.SI\r\n })).subscribe(data => {\r\n this.listaXML = data;\r\n })\r\n }\r\n\r\n nuevoMarcadorXML(){\r\n this.marcadorXML = new ReporteMarcadorModel();\r\n this.marcadorXML.tipoReporte = 'X';\r\n this.marcadorXML.origen = 'X';\r\n this.verNuevoMarcadorXML = true;\r\n }\r\n\r\n verMarcadorXML(event){\r\n this.marcadorXML = event.data;\r\n this.verNuevoMarcadorXML = true;\r\n if (this.marcadorXML.tipo == 'MR' || this.marcadorXML.tipo == 'TB'){\r\n this.cargarListaCampoMarcadorXML();\r\n }\r\n }\r\n\r\n validarMarcadorXML(){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorXML.descripcion);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorXML.tipo);\r\n return validador\r\n }\r\n\r\n guardarMarcadorXML(){\r\n this.clickGuardarMarcadorXML = true;\r\n if (!this.validarMarcadorXML()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n this.marcadorXML.reporteFuente = this.reporteFuente.llave;\r\n if (this.marcadorXML.llave){\r\n this.generalService.update(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.marcadorXML = new ReporteMarcadorModel();\r\n this.verNuevoMarcadorXML = false;\r\n this.cargarListaXML();\r\n })\r\n } else {\r\n this.marcadorXML.llave = this.utilsService.generarLlave();\r\n this.generalService.crearRegistro(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n this.marcadorXML = new ReporteMarcadorModel();\r\n this.verNuevoMarcadorXML = false;\r\n this.cargarListaXML();\r\n })\r\n }\r\n this.clickGuardarMarcadorXML = false;\r\n }\r\n\r\n eliminarMarcadorXML(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: async () => {\r\n await this.generalService.delete(new GeneralModel('ReporteMarcadorDTO', null, false, this.marcadorXML)).toPromise();\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.marcadorXML = new ReporteMarcadorModel();\r\n this.verNuevoMarcadorXML = false;\r\n this.cargarListaXML();\r\n }\r\n })\r\n }\r\n\r\n nuevoCampoTablaXML(){\r\n this.verReporteMarcadorDetalleXML = true;\r\n this.campoMarcadorInsertarXML = new ReporteTablaModel();\r\n this.campoMarcadorInsertarXML.reporteMarcador = this.marcadorXML.llave\r\n }\r\n\r\n cargarListaCampoMarcadorXML() {\r\n this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.marcadorXML.llave})).subscribe(data => {\r\n this.listaCamposMarcadorXML = data;\r\n })\r\n }\r\n\r\n async cargarListaCampoMarcadorXMLAsync() {\r\n this.listaCamposMarcadorXML = await this.generalService.queryForList(new GeneralModel('ReporteTablaDTO', null, false, { reporteMarcador: this.marcadorXML.llave})).toPromise();\r\n }\r\n\r\n validarCampoMarcadorXML(campoMarcador){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.campoFuente);\r\n validador = validador && this.utilsService.validarCampoObligatorio(campoMarcador.marcador);\r\n return validador;\r\n }\r\n\r\n agregarCampoMarcadorXML(campo: ReporteTablaModel){\r\n this.clickGuardarMarcadorCampoXML = true;\r\n if (!this.validarCampoMarcadorXML(campo)){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n if (campo.llave){\r\n this.generalService.update(new GeneralModel('ReporteTablaDTO', null, false, campo)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.campoMarcadorInsertarXML = new ReporteTablaModel();\r\n this.cargarListaCampoMarcadorXML();\r\n })\r\n } else {\r\n campo.columna = 0;\r\n campo.llave = this.utilsService.generarLlave();\r\n this.generalService.crearRegistro(new GeneralModel('ReporteTablaDTO', null, false, campo)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n campo = new ReporteTablaModel();\r\n this.cargarListaCampoMarcadorXML();\r\n })\r\n }\r\n this.clickGuardarMarcadorCampoXML = false;\r\n this.verReporteMarcadorDetalleXML = false;\r\n }\r\n\r\n eliminarCampoMarcadorXML(event, objeto){ \r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteTablaDTO', null, false, objeto)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.cargarListaCampoMarcadorXML();\r\n })\r\n }\r\n })\r\n }\r\n\r\n cambiarTabColumnario(event){\r\n switch (event.index) {\r\n case 0:\r\n this.cargarReporteColumnario();\r\n break;\r\n case 1:\r\n this.cargarDatosAdicionales();\r\n break;\r\n case 2:\r\n this.cargarMarcadoresColumnario();\r\n break;\r\n }\r\n }\r\n\r\n cargarMarcadoresColumnario() {\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.marcadoresColumnario = data;\r\n })\r\n }\r\n\r\n\r\n cargarDatosAdicionales() {\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioDTO', null, false, {reporteFuente: this.reporteFuente.llave, filtroColumnaBasica: 'N'})).subscribe(data => {\r\n this.columnasAdicionales = data;\r\n })\r\n }\r\n\r\n cargarReporteColumnario(){\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnarioDTO', null, false, {reporteFuente: this.reporteFuente.llave, filtroColumnaBasica: 'S'})).subscribe(data => {\r\n this.listaReporteColumnario = data;\r\n })\r\n }\r\n\r\n cargarGraficasColumnas() {\r\n this.generalService.queryForList(new GeneralModel('ReporteColumnaDTO', null, false, {reporteFuente: this.reporteFuente.llave})).subscribe(data => {\r\n this.paginadorColumnas = data;\r\n })\r\n this.generalService.queryForList(new GeneralModel('ReporteBandaDTO', null, false, {reporteFuente: this.reporteFuente.llave, totales: 'C'})).subscribe(data => {\r\n this.paginadorColoresGrafica = data;\r\n })\r\n }\r\n\r\n validarExisteJasper(){\r\n this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporteFuente.llave + '.jrxml'), 'ruta_plantillas', this.aplicacion).subscribe(\r\n (response) => {\r\n this.existeJasper = true;\r\n },\r\n (error) => {\r\n this.existeJasper = false;\r\n }\r\n ) \r\n }\r\n\r\n verReporteColumnario(event){\r\n this.columnaBasica = event.data;\r\n this.verNuevoReporteColumnario = true;\r\n }\r\n\r\n nuevoColumnaBasica(){\r\n this.columnaBasica = new ReporteColumnarioModel();\r\n this.columnaBasica.reporteFuente = this.reporteFuente.llave;\r\n this.verNuevoReporteColumnario = true;\r\n }\r\n\r\n validarColumnaBasica(){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.nombre);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.tipo);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.reporteColumna);\r\n if (validador){\r\n if (this.isMostrarOrden()){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.orden);\r\n }\r\n if (this.isMostrarOrdenConsulta()){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.ordenConsulta);\r\n }\r\n if (this.reporteColumnarioPipe.TIPO_CELDA == this.columnaBasica.tipo) {\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacion);\r\n } else if (this.reporteColumnarioPipe.TIPO_COLUMNA== this.columnaBasica.tipo) {\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacionHorizontal);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.operacionVertical);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.columnaOperacionVertical);\r\n } else if (this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo) {\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaBasica.orderBy);\r\n }\r\n }\r\n return validador;\r\n }\r\n\r\n async verificarColumnasValidas(reporteColumnarioDTO): Promise<boolean> {\r\n var tipo=reporteColumnarioDTO.tipo;\r\n\t\tif(this.reporteColumnarioPipe.TIPO_FILA == reporteColumnarioDTO.tipo){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar filtro=new ReporteColumnarioModel();\r\n\t\tfiltro.reporteFuente = reporteColumnarioDTO.reporteFuente;\r\n\t\tfiltro.diferenteColumnario = reporteColumnarioDTO.llaveTabla;\r\n\t\tfiltro.tipo = tipo;\r\n\t\tvar cantidad= await this.generalService.cantidadRegistros(new GeneralModel('ReporteColumnarioDTO', null, false, filtro)).toPromise();\r\n\t\tif(cantidad==0){\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif(this.reporteColumnarioPipe.TIPO_COLUMNA == reporteColumnarioDTO.tipo){\r\n\t\t\t\tthis.notificacionesBusService.showWarning(\"El reporte solo puede contener 1 registro con tipo \"+this.reporteColumnarioPipe.TIPO_COLUMNA_DESC);\r\n return false;\r\n\t\t}else if(this.reporteColumnarioPipe.TIPO_CELDA == reporteColumnarioDTO.tipo){\r\n this.notificacionesBusService.showWarning(\"El reporte solo puede contener 1 registro con tipo \"+this.reporteColumnarioPipe.TIPO_CELDA_DESC);\r\n return false;\r\n\t\t}\r\n return true;\r\n }\r\n\r\n async guardarColumnaBasica(){\r\n this.clickGuardarReporteColumnario = true;\r\n if (!this.validarColumnaBasica()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n \r\n if (await this.verificarColumnasValidas(this.columnaBasica)){\r\n if (this.columnaBasica.llaveTabla) {\r\n await this.generalService.update(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).toPromise();\r\n this.columnaBasica = new ReporteColumnarioModel();\r\n this.verNuevoReporteColumnario = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).toPromise();\r\n this.columnaBasica = new ReporteColumnarioModel();\r\n this.verNuevoReporteColumnario = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n }\r\n this.clickGuardarReporteColumnario = false;\r\n this.cargarReporteColumnario();\r\n }\r\n }\r\n\r\n eliminarColumnaBasica(event){ \r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaBasica)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.verNuevoReporteColumnario = false;\r\n this.columnaBasica = new ReporteColumnarioModel();\r\n this.cargarReporteColumnario();\r\n })\r\n \r\n }\r\n })\r\n }\r\n\r\n nuevaColumnaAdicional() {\r\n this.columnaAdicional = new ReporteColumnarioModel();\r\n this.columnaAdicional.reporteFuente = this.reporteFuente.llave;\r\n this.columnaAdicional.tipo = this.reporteColumnarioPipe.TIPO_ADICIONAL;\r\n this.verNuevoColumnaAdicional = true;\r\n }\r\n\r\n verDetalleAdicional(event) {\r\n this.columnaAdicional = event.data;\r\n this.verNuevoColumnaAdicional = true;\r\n }\r\n\r\n validarColumnaAdicional() {\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.nombre);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.sintaxis);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.orden);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.orderBy);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.columnaAdicional.ordenConsulta);\r\n return validador;\r\n }\r\n\r\n async guardarColumnaAdicional() {\r\n this.clickGuardarColumnaAdicional = true;\r\n if (!this.validarColumnaAdicional()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n if (this.columnaAdicional.llaveTabla) {\r\n await this.generalService.update(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).toPromise();\r\n this.columnaAdicional = new ReporteColumnarioModel();\r\n this.verNuevoColumnaAdicional = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).toPromise();\r\n this.columnaAdicional = new ReporteColumnarioModel();\r\n this.verNuevoColumnaAdicional = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n }\r\n this.clickGuardarColumnaAdicional = false;\r\n this.cargarDatosAdicionales();\r\n }\r\n\r\n eliminarColumnaAdicional(event) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteColumnarioDTO', null, false, this.columnaAdicional)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.verNuevoColumnaAdicional = false;\r\n this.columnaAdicional = new ReporteColumnarioModel();\r\n this.cargarDatosAdicionales();\r\n })\r\n }\r\n })\r\n }\r\n\r\n nuevoMarcadorColumnario() {\r\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\r\n this.marcadorColumnario.reporteFuente = this.reporteFuente.llave;\r\n this.verNuevoMarcadorColumnario = true;\r\n }\r\n\r\n verDetalleMarcadorColumnario(event) {\r\n this.marcadorColumnario = event.data;\r\n this.verNuevoMarcadorColumnario = true;\r\n }\r\n\r\n validarMarcadorColumnario() {\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.marcador);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.tipo);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.textoRegistro);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.marcadorColumnario.descripcion);\r\n return validador;\r\n }\r\n\r\n async guardarMarcadorColumnario() {\r\n this.clickGuardarMarcadorColumnario = true;\r\n if (!this.validarMarcadorColumnario()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n if (this.marcadorColumnario.llaveTabla) {\r\n await this.generalService.update(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).toPromise();\r\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\r\n this.verNuevoMarcadorColumnario = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n } else {\r\n await this.generalService.crearRegistro(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).toPromise();\r\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\r\n this.verNuevoMarcadorColumnario = false;\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n }\r\n this.clickGuardarMarcadorColumnario = false;\r\n this.cargarMarcadoresColumnario();\r\n }\r\n\r\n eliminarMarcadorColumnario(event) {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.generalService.delete(new GeneralModel('ReporteColumnarioMarcadorDTO', null, false, this.marcadorColumnario)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.verNuevoMarcadorColumnario = false;\r\n this.marcadorColumnario = new ReporteColumnarioMarcadorModel();\r\n this.cargarMarcadoresColumnario();\r\n })\r\n }\r\n })\r\n }\r\n\r\n public guardarGrafico() {\r\n this.actualizar();\r\n this.paginadorColumnas.forEach(data => {\r\n this.generalService.update(new GeneralModel('ReporteColumnaDTO', null, false, data)).subscribe(data => {})\r\n });\r\n }\r\n\r\n public verGrafico() {\r\n this.reporteService.verGrafico({llaveReporte: this.reporteFuente.llave}).subscribe(data => {\r\n let columna = this.dashboardService.cargarGrafica({accion: data.tipoGrafico, datosGrafica: data});\r\n this.grafica = columna;\r\n let respuesta = this.dashboardPipe.TIPO_GRAFICO_CHART.filter(data => data.codigo == columna.datosGrafica.tipoGrafico);\r\n if (respuesta.length < 0) {\r\n return;\r\n }\r\n columna.tipoGrafico = respuesta[0].codigoChart;\r\n this.tipoGrafica = columna.tipoGrafico;\r\n console.log(this.tipoGrafica)\r\n })\r\n }\r\n\r\n nuevoColorCategoria(){\r\n this.colorCategoria = new ReporteBandaModel();\r\n this.verColorCategoriaDetalle = true;\r\n this.habilitaCampo = true;\r\n }\r\n\r\n cancelarColorCategoria() {\r\n this.colorCategoria = new ReporteBandaModel();\r\n this.verColorCategoriaDetalle = false;\r\n this.habilitaCampo = false;\r\n }\r\n\r\n validarColorCategoria(color){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(color.titulo)\r\n validador = validador && this.utilsService.validarCampoObligatorio(color.banda)\r\n return validador;\r\n }\r\n\r\n agregarColorCategoria(color){\r\n this.clickGuardarColorCategoria = true;\r\n if (!this.validarColorCategoria(color)){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n if (!color.llaveTabla){\r\n color.totales = 'C'\r\n color.reporteFuente = this.reporteFuente.llave\r\n this.generalService.crearRegistro(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n color = new ReporteBandaModel();\r\n this.cargarGraficasColumnas();\r\n this.verColorCategoriaDetalle = false;\r\n this.clickGuardarColorCategoria = false;\r\n })\r\n } else {\r\n this.generalService.update(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.cargarGraficasColumnas();\r\n this.verColorCategoriaDetalle = false;\r\n this.clickGuardarColorCategoria = false;\r\n color = new ReporteBandaModel();\r\n })\r\n }\r\n this.habilitaCampo = false;\r\n }\r\n\r\n eliminarColorCategoria(event, color){\r\n this.habilitaCampo = true;\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => { \r\n this.generalService.delete(new GeneralModel('ReporteBandaDTO', null, false, color)).subscribe(data => {\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.cargarGraficasColumnas();\r\n this.habilitaCampo = false;\r\n })\r\n }\r\n })\r\n }\r\n\r\n async cancelarEdicionColor() { \r\n this.cargarGraficasColumnas(); \r\n this.habilitaCampo = false;\r\n }\r\n\r\n public isFijo():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\r\n }\r\n\r\n public isSql():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\r\n }\r\n\r\n /**\r\n\t * Permite conocer si se debe presentar en la interfaz los campos referentes a orden consulta\r\n\t * @return Si se debe mostrar se retornara true, de lo contrario false\r\n\t */\r\n\tisMostrarOrdenConsulta(){\r\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo;\r\n\t}\r\n\t\r\n\r\n\tisMostrarOrden(){\r\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo||\r\n\t\t\t\tthis.reporteColumnarioPipe.TIPO_COLUMNA == this.columnaBasica.tipo||this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo;\r\n\t}\r\n\r\n\tisTipoColumna(){\r\n\t\treturn this.reporteColumnarioPipe.TIPO_COLUMNA == this.columnaBasica.tipo;\r\n\t}\r\n\t\r\n\r\n\tisTipoFila(){\r\n\t\treturn this.reporteColumnarioPipe.TIPO_FILA == this.columnaBasica.tipo;\t\r\n\t}\r\n\r\n\tisTipoLabel(){\r\n\t\treturn this.reporteColumnarioPipe.TIPO_LABEL == this.columnaBasica.tipo;\t\r\n\t}\r\n\r\n sleep(ms: number): Promise<void> {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n }\r\n\r\n public isFuente():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\r\n }\r\n\r\n public filtroOrigenFuente(tipo:string):boolean{\r\n return this.reporteFuente.origenFuente == tipo;\r\n }\r\n}","<p-tabView (onChange)=\"cambiarTab($event)\">\r\n <p-tabPanel header=\"{{'excel' | translate }}\" [selected]=\"true\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <p class=\"font-semibold\">{{'debe' | translate}} {{'indicar' | translate}} {{'plantilla' | translate}} {{'y' | translate}}\r\n {{'hoja' | translate}} {{'para' | translate}} {{'que' | translate}} {{'esta' | translate}}\r\n {{'opcion' | translate}} {{'se' | translate}} {{'active' | translate}}\r\n </p>\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-4\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"reporteFuente.archivoTodo ? reporteFuente.archivoTodo: ''\"\r\n [extensiones]=\"'xls;xlsx'\" [mostraroblicargo]=\"true\" [labelrar]=\"'plantilla' | translate\"\r\n (onSelected)=\"obtenerArchivo($event)\"></app-input-helper-seleccion-plantilla>\r\n\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.hojaExcel\" size=\"25\" maxlength=\"20\">\r\n <label>{{'nombre' | translate }} {{'de' | translate }} {{'la' | translate }} {{'hoja' |\r\n translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.cifradoExcel\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\r\n (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p-pickList [source]=\"listaExcel\" [target]=\"listaNoExcel\" sourceHeader=\"Asociado\" sourceFilterPlaceholder=\"Asociado\"\r\n targetHeader=\"Desasociado\" [dragdrop]=\"true\" [responsive]=\"true\" targetFilterPlaceholder=\"Desasociado\"\r\n filterBy=\"sintaxis\" (onSourceReorder)=\"moverAAsociado($event)\"\r\n (onMoveAllToTarget)=\"moverADesasociado($event)\" (onMoveAllToSource)=\"moverAAsociado($event)\"\r\n (onMoveToTarget)=\"moverADesasociado($event)\" (onMoveToSource)=\"moverAAsociado($event)\">\r\n <ng-template let-excel pTemplate=\"item\">\r\n <div>\r\n <label>{{excel.nombre}}</label>\r\n </div>\r\n </ng-template>\r\n </p-pickList>\r\n\r\n <div class=\"mt-4\">\r\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\r\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoMarcadorExcel()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorExcel\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorExcel\">\r\n <button pButton pRipple (click)=\"verNuevoMarcadorExcel = false\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaMarcadorExcel\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" [selection]=\"reporteMarcadorExcel\" [rows]=\"10\"\r\n [totalRecords]=\"listaMarcadorExcel.length\" [paginator]=\"listaMarcadorExcel.length > 10\"\r\n (onRowSelect)=\"verDetalleMarcadorExcel($event)\" (onRowUnselect)=\"verDetalleMarcadorExcel($event)\" *ngIf=\"!verNuevoMarcadorExcel\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'descripcion' | translate }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-marcador>\r\n <tr [pSelectableRow]=\"marcador\">\r\n <td>{{marcador.descripcion}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorExcel\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\r\n <div class=\"Detallereporte mt-4 \">\r\n <form [formGroup]=\"formMarcadorExcel\" >\r\n <div class=\"col-md-12 p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"descripcion\" size=\"25\" maxlength=\"4000\">\r\n <label>{{'descripcion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\" maxlength=\"4000\">\r\n <label>{{'marcador' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown\r\n [options]=\"[{label: 'Imagen Fija', value: 'IF'}, {label: 'Marcador', value: 'MA'}]\"\r\n [autoDisplayFirst]=\"false\" formControlName=\"tipo\" optionLabel=\"label\"\r\n optionValue=\"value\"></p-dropdown>\r\n <label>{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\" [hidden]=\"esImagenFija\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"textoRegistro\"></textarea>\r\n <label>{{'valor' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"esMarcador\">\r\n <p-floatLabel>\r\n <p-dropdown\r\n [options]=\"[{label: 'Unica', value: 'U'}, {label: 'Cada Empresa', value: 'C'}]\"\r\n [autoDisplayFirst]=\"false\" formControlName=\"origen\" optionLabel=\"label\"\r\n optionValue=\"value\"></p-dropdown>\r\n <label>{{'origen' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"esMarcador\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n formControlName=\"textoRegistro\"\r\n [label]=\"reporteMarcadorExcel.textoRegistro ? reporteMarcadorExcel.textoRegistro: ''\"\r\n [extensiones]=\"'jpg;png'\" (onSelected)=\"obtenerArchivoMarcadorExcel($event)\"\r\n [propiedad]=\"'ruta_recursos'\" [labelrar]=\"('recursos' | translate)\" [labelarch]=\"'recurso' | translate\" [mostrarX]=\"true\"\r\n [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(reporteMarcadorExcel.textoRegistro) && clickGuardarMarcadorExcel)\"\r\n [anexoPropiedad]=\"reporteMarcadorExcel.origen =='C' ? llaveEmpresa: ''\"\r\n [propiedadDeSistema]=\"true\"></app-input-helper-seleccion-plantilla>\r\n </div>\r\n </div>\r\n </form>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"verNuevoMarcadorExcel\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" icon=\"glyphicons {{reporteMarcadorExcel.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{reporteMarcadorExcel.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorExcel()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"reporteMarcadorExcel.llave != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarMarcadorExcel($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'plantilla' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.unicoArchivo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'soporte' | translate }} {{'unico' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.descargarFuente\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'descargardoc' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.generarPin\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'generarpin' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaColumnas\" [(ngModel)]=\"reporteFuente.campoAgrupacionPlanilla\" \r\n [autoDisplayFirst]=\"false\" [showClear]=\"true\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'agruparpor' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.nombreAgrupacionPlanilla\" size=\"25\"\r\n maxlength=\"100\">\r\n <label>{{'nombrearchivoagrupacion' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.cifradoPlanilla\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteFuente.unicoArchivo == 'N'\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"reporteFuente.archivoIndividual ? reporteFuente.archivoIndividual: ''\"\r\n [labelrar]=\"'archivo' | translate\" [labelarch]=\"'archivo' | translate\" [mostraroblicargo]=\"true\"\r\n (onSelected)=\"obtenerArchivoPlanilla($event)\"></app-input-helper-seleccion-plantilla>\r\n </div>\r\n\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p-tabView >\r\n <p-tabPanel header=\"{{'marcadores' | translate }}\" [selected]=\"true\">\r\n \r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton pRipple class=\"p-button-secondary font-semibold mb-2\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoMarcador()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcador\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcador\">\r\n <button pButton pRipple (click)=\"verNuevoMarcador = false\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaMarcadores\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" [selection]=\"reporteMarcador\"\r\n [rows]=\"10\" [totalRecords]=\"listaMarcadores.length\"\r\n [paginator]=\"listaMarcadores.length > 10\" *ngIf=\"!verNuevoMarcador\"\r\n (onRowSelect)=\"verDetalleMarcador($event)\" (onRowUnselect)=\"verDetalleMarcador($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'descripcion' | translate }}</th>\r\n <th>{{'tipo' | translate }}</th>\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'marcador' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-marcador>\r\n <tr [pSelectableRow]=\"marcador\">\r\n <td>{{marcador.descripcion}}</td>\r\n <td>{{marcador.tipo | reporteFuentePipe : 'listaTipoDatoMarcadores'}}</td>\r\n <td>{{marcador.tipo == 'IF' ? marcador.textoRegistro : marcador.nombreColumna}}</td>\r\n <td>{{marcador.marcador}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"card col-md-12\" *ngIf=\"verNuevoMarcador\">\r\n <div class=\"Detallereporte mt-2\">\r\n <form [formGroup]=\"formMarcador\">\r\n <p class=\"font-semibold\">{{'indique' | translate}} {{'en' | translate}} {{'que' | translate}} {{'columna' | translate}} {{'desea' | translate}} {{'que' | translate}} {{'aparezca' | translate}} {{'la' | translate}} {{'informacion' | translate}}. {{'la' | translate}} {{'primera' | translate}} {{'columna' | translate}} {{'es' | translate}} {{'la' | translate}} 1.</p>\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"descripcion\" size=\"25\"\r\n maxlength=\"4000\">\r\n <label>{{'descripcion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoMarcador\" [autoDisplayFirst]=\"false\" \r\n formControlName=\"tipo\" optionLabel=\"nombre\"\r\n optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!(['MA','IM','MR','IF','QR','BC','G1'].includes(reporteMarcador.tipo))\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\">\r\n <label>{{'marcador' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'TB'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"tabla\" size=\"25\">\r\n <label>{{'tabla' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'IF'\">\r\n <p-floatLabel>\r\n <p-dropdown\r\n [options]=\"[{label: 'Unica', value: 'U'}, {label: 'Cada Empresa', value: 'C'}]\"\r\n [autoDisplayFirst]=\"false\" [showClear]=\"true\" formControlName=\"origen\" optionLabel=\"label\"\r\n optionValue=\"value\"></p-dropdown>\r\n <label>{{'origen' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"reporteMarcador.tipo != 'IF' || !reporteMarcador.origen\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n formControlName=\"textoRegistro\"\r\n [label]=\"reporteMarcador.textoRegistro ? reporteMarcador.textoRegistro: ''\"\r\n [extensiones]=\"'jpg;png'\" (onSelected)=\"obtenerArchivoMarcador($event)\"\r\n [propiedad]=\"'ruta_recursos'\" [labelrar]=\"'recursos' | translate\"\r\n [anexoPropiedad]=\"reporteMarcador.origen =='C' ? llaveEmpresa: ''\"\r\n [propiedadDeSistema]=\"true\"></app-input-helper-seleccion-plantilla>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['MA','IM','QR','BC','G1'].includes(reporteMarcador.tipo)\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaColumnas\" formControlName=\"reporteColumna\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'columna' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MA'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"formato\" size=\"25\">\r\n <label>{{'formato' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['IM','IF','QR','BC','G1'].includes(reporteMarcador.tipo)\">\r\n <p-floatLabel>\r\n <p-inputNumber formControlName=\"ancho\" [maxlength]=\"5\"> </p-inputNumber>\r\n <label>{{'ancho' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['IM','IF','QR','BC','G1'].includes(reporteMarcador.tipo)\">\r\n <p-floatLabel>\r\n <p-inputNumber formControlName=\"alto\" [maxlength]=\"5\"> </p-inputNumber>\r\n <label>{{'alto' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo1\"></textarea>\r\n <label>{{'grupo1' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo2\"></textarea>\r\n <label>{{'grupo2' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"grupo3\"></textarea>\r\n <label>{{'grupo3' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"finalGrupo\"></textarea>\r\n <label>{{'finalgrupo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"textoRegistro\"></textarea>\r\n <label>{{'texto' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['MR','TB'].includes(reporteMarcador.tipo)\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"tieneSql\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'sql' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"reporteMarcador.tipo != 'TB'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoGrafico_JFC\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n formControlName=\"tipoGrafico\" optionLabel=\"nombre\"\r\n optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'grafica' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\"\r\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['S'].includes(reporteMarcador.tieneSql)))\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"query\"></textarea>\r\n <label>{{'consulta' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['N'].includes(reporteMarcador.tieneSql)))\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaFuentes\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n formControlName=\"fuente\" optionLabel=\"descripcion\"\r\n optionValue=\"llave\"></p-dropdown>\r\n <label>{{'fuente' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"marcadorGrafico\" size=\"25\">\r\n <label>{{'marcadorgrafica' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['A'].includes(reporteMarcador.tipoGrafico)\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"titulox\" size=\"25\">\r\n <label>{{'titulo' | translate }} X</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\"\r\n [hidden]=\"!['A'].includes(reporteMarcador.tipoGrafico)\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"tituloy\" size=\"25\">\r\n <label>{{'titulo' | translate }} Y</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"banda\" size=\"25\">\r\n <label>{{'colordinamico' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" [hidden]=\"!reporteMarcador.tipoGrafico\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"anchoJasperLabel\" size=\"25\">\r\n <label>{{'numerocategorias' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\"\r\n [hidden]=\"!(['MR','TB'].includes(reporteMarcador.tipo) && (['N'].includes(reporteMarcador.tieneSql)))\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"filtro\"></textarea>\r\n <label>{{'filtro' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n icon=\"glyphicons {{reporteMarcador.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" label=\"{{reporteMarcador.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\r\n (click)=\"guardarMarcador()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"reporteMarcador.llave != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarMarcador($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"verNuevoMarcador && reporteMarcador.llave != null && (reporteMarcador.tipo == 'MR' || reporteMarcador.tipo == 'TB')\">\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampoTabla()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table [value]=\"listaCamposMarcador\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"10\" [totalRecords]=\"listaCamposMarcador.length\" [scrollable]=\"true\"\r\n [paginator]=\"listaCamposMarcador.length > 10\" \r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \r\n editMode=\"row\" dataKey=\"llave\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"width: 10%;\">{{'columna' | translate }}</th>\r\n <th style=\"width: 10%;\">{{'campo' | translate }}</th>\r\n <th style=\"width: 10%;\">{{'formato' | translate }}</th>\r\n <th style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">{{'tipo' | translate }}</th>\r\n <th style=\"width: 10%;\"*ngIf=\"reporteMarcador.tipo == 'TB'\">{{'medidas' | translate }}</th>\r\n <th style=\"width: 10%;\"> </th>\r\n </tr>\r\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verReporteMarcadorDetalle\">\r\n <td style=\"width: 10%;\">\r\n <input pInputText [(ngModel)]=\"campoMarcadorInsertar.columna\" \r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.columna) && clickGuardarMarcadorCampo\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.columna) && clickGuardarMarcadorCampo\" />\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.campoFuente\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.campoFuente) && clickGuardarMarcadorCampo\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertar.campoFuente) && clickGuardarMarcadorCampo\">\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.formato\">\r\n </td>\r\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\r\n <p-dropdown [options]=\"listaGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [(ngModel)]=\"campoMarcadorInsertar.tipo\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" [showClear]=\"true\"></p-dropdown>\r\n </td>\r\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\r\n <div *ngIf=\"campoMarcadorInsertar.tipo =='I'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.ancho\">\r\n <label>{{'ancho' | translate}}</label>\r\n </p-floatLabel>\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertar.alto\">\r\n <label>{{'alto' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n </td>\r\n <td style=\"width: 10%;\" >\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCampoMarcador(campoMarcadorInsertar)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"verReporteMarcadorDetalle = false\" icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"campo\">\r\n <td style=\"width: 10%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.columna\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.columna) && clickGuardarMarcadorCampo\" \r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.columna) && clickGuardarMarcadorCampo\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.columna}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.campoFuente\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampo\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampo\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.campoFuente}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n\r\n <td style=\"width: 10%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.formato\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.formato}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n \r\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"listaGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [(ngModel)]=\"campo.tipo\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [autoDisplayFirst]=\"false\" [showClear]=\"true\"></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.tipo | reporteFuentePipe :'listaRecursoGrafica'}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n \r\n <td style=\"width: 10%;\" *ngIf=\"reporteMarcador.tipo == 'TB'\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <div *ngIf=\"campo.tipo =='I'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.ancho\">\r\n <label>{{'ancho' | translate}}</label>\r\n </p-floatLabel>\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.alto\">\r\n <label>{{'alto' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <div *ngIf=\"campo.tipo =='I'\">\r\n {{'ancho' | translate}}: {{campo.ancho}} <br/>\r\n {{'alto' | translate}}: {{campo.alto}}\r\n </div> \r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <div class=\"flex justify-content-end\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarCampoMarcador(campo)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\" (click)=\"cargarListaCampoMarcadorAsync()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarCampoMarcador($event,campo)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'soporte' | translate }} {{'archivo' | translate }}s\"\r\n *ngIf=\"reporteFuente.unicoArchivo == 'N'\">\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoSoporte()\" icon=\"pi pi-plus\"\r\n [disabled]=\"habilitaCampo\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table [value]=\"listaSoportes\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"10\" [totalRecords]=\"listaSoportes.length\"\r\n [paginator]=\"listaSoportes.length > 10\" \r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \r\n editMode=\"row\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"width: 45%\">{{'descripcion' | translate}}</th>\r\n <th style=\"width: 45%\">{{'archivo' | translate}}</th>\r\n <th style=\"width: 10%\"> </th>\r\n </tr>\r\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verSoporteArchivoDetalle\">\r\n <td style=\"width: 45%\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"soporteIngresar.descripcion\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(soporteIngresar.descripcion) && clickGuardarSoporteArchivo\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(soporteIngresar.descripcion) && clickGuardarSoporteArchivo\">\r\n </td>\r\n <td style=\"width: 45%\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"soporteIngresar.archivoIndividual ? soporteIngresar.archivoIndividual: ''\" [labelarch]=\"'archivo' | translate\"\r\n [mostrarLabelInput]=\"false\" [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(soporteIngresar.archivoIndividual) && clickGuardarSoporteArchivo)\"\r\n (onSelected)=\"obtenerArchivoSoporte($event, soporteIngresar)\"></app-input-helper-seleccion-plantilla>\r\n </td>\r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarSoporte(soporteIngresar)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"verSoporteArchivoDetalle = false\" icon=\"pi pi-times\" (click)=\"cancelarSoporte()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-soporte let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"soporte\" style=\"width: 100%\">\r\n <td style=\"width: 45%\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"soporte.descripcion\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(soporte.descripcion) && clickGuardarSoporteArchivo\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(soporte.descripcion) && clickGuardarSoporteArchivo\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{soporte.descripcion}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 45%\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"soporte.archivoIndividual ? soporte.archivoIndividual: ''\"\r\n [mostrarLabelInput]=\"false\" [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(soporte.archivoIndividual) && clickGuardarSoporteArchivo)\"\r\n (onSelected)=\"obtenerArchivoSoporte($event, soporte)\"></app-input-helper-seleccion-plantilla>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{soporte.archivoIndividual}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarSoporte(soporte)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\" (click)=\"cancelarEdicion()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarSoporte($event, soporte)\" [disabled]=\"habilitaCampo\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'reporte' | translate }} {{'dinamico' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" [(ngModel)]=\"reporteFuente.dobleLinea\" [showClear]=\"true\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'doblelinea' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tituloParametro\" size=\"25\"\r\n maxlength=\"100\">\r\n <label>{{'descripcion' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.cifradoJasper\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n \r\n \r\n <button pButton pRipple class=\"ml-2 p-button-outlined background-100\" icon=\"glyphicons glyphicons-restart\" \r\n label=\"{{'link_generar' | translate}}\" (click)=\"generarJasper()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"pi pi-download\" *ngIf=\"existeJasper\"\r\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarJasper()\">\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"bandaSeleccionada.key\">\r\n <button pButton pRipple (click)=\"regresarBandaSeleccionada()\" label= \"{{'listado' | translate}} {{'bandas' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaTipoBanda\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" [rows]=\"10\"\r\n [totalRecords]=\"listaTipoBanda.length\" [paginator]=\"listaTipoBanda.length > 10\"\r\n (onRowSelect)=\"verBanda($event)\" (onRowUnselect)=\"verBanda($event)\" *ngIf=\"!bandaSeleccionada.key\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'banda' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-banda>\r\n <tr [pSelectableRow]=\"banda\">\r\n <td>{{banda.value}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <p-tabView *ngIf=\"bandaSeleccionada.key && verTabBanda\">\r\n <p-tabPanel header=\"{{'caracteristicas' | translate}}\"\r\n *ngIf=\"!['detalle','summary'].includes(bandaSeleccionada.key)\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" optionLabel=\"nombre\" optionValue=\"codigo\" \r\n [(ngModel)]=\"reporteBanda.totales\" ></p-dropdown>\r\n <label>{{'total' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteBanda.titulo\" maxlength=\"200\">\r\n <label>{{'titulo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\r\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardarCaracteristicaBanda()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{bandaSeleccionada.value}}\" *ngIf=\"!nuevaBanda\">\r\n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\r\n <div class=\"flex justify-content-end mb-1\" >\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoMarcadorDinamico()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\" *ngIf=\"!nuevoReporteMarcadorDinamico\"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaMarcadorDinamico\" [scrollable]=\"true\"\r\n responsiveLayout=\"scroll\" dataKey=\"llaveTabla\" selectionMode=\"single\"\r\n [rows]=\"10\" [totalRecords]=\"listaMarcadorDinamico.length\"\r\n [paginator]=\"listaMarcadorDinamico.length > 10\" *ngIf=\"!nuevoReporteMarcadorDinamico\"\r\n (onRowSelect)=\"verMarcadorDinamico($event)\" (onRowUnselect)=\"verMarcadorDinamico($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'banda' | translate }}</th>\r\n <th>{{'orden' | translate }}</th>\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'etiqueta' | translate }}</th>\r\n <th>{{'formato' | translate }}</th>\r\n <th>{{'ancho' | translate }}</th>\r\n <th>{{'operacion' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-dinamico>\r\n <tr [pSelectableRow]=\"dinamico\">\r\n <td>{{dinamico.banda}}</td>\r\n <td>{{dinamico.banda ? dinamico.alto : ''}}</td>\r\n <td>{{dinamico.marcador}}</td>\r\n <td>{{dinamico.banda ? dinamico.descripcion : ''}}</td>\r\n <td>{{dinamico.banda ? dinamico.formato : ''}}</td>\r\n <td>{{['detalle'].includes(dinamico.banda) ? dinamico.ancho : ''}}</td>\r\n <td>{{dinamico.banda ? dinamico.operacion : ''}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div *ngIf=\"nuevoReporteMarcadorDinamico\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"flex justify-content-between align-items-center mb-2\"> \r\n <p class=\"font-semibold mt-3\">{{'indique' | translate}} {{'en' | translate}} {{'que' | translate}} {{'columna' | translate}} {{'desea' | translate}} {{'que' | translate}} {{'aparezca' | translate}} {{'la' | translate}} {{'informacion' | translate}}. {{'la' | translate}} {{'primera' | translate}} {{'columna' | translate}} {{'es' | translate}} {{'la' | translate}} 1.</p>\r\n <button pButton pRipple (click)=\"nuevoReporteMarcadorDinamico = false\" label= \"{{'listado' | translate}} {{bandaSeleccionada.value}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \" *ngIf=\"nuevoReporteMarcadorDinamico\"></button>\r\n </div>\r\n <form [formGroup]=\"formReporteDinamico\" class=\"p-fluid grid\">\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCampoJasperDinamico\"\r\n [autoDisplayFirst]=\"false\" formControlName=\"tipoCampo\"\r\n optionLabel=\"value\" optionValue=\"key\"></p-dropdown>\r\n <label>{{'tipocampo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoDatoSintaxis\" [autoDisplayFirst]=\"false\" \r\n formControlName=\"tipoDato\" optionLabel=\"value\"\r\n optionValue=\"key\"></p-dropdown>\r\n <label>{{'tipodato' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText formControlName=\"alto\" maxlength=\"5\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\r\n <label>{{'orden' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" \r\n formControlName=\"marcador\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\r\n *ngIf=\"!reporteMarcadorDinamico.llave && reporteMarcadorDinamico.tipoCampo !='C'\"></p-dropdown>\r\n <input pInputText type=\"text\" formControlName=\"marcador\" size=\"25\"\r\n *ngIf=\"reporteMarcadorDinamico.llave && reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <label>{{'columna' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n \r\n <div class=\"field col-12 md:col-12\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea formControlName=\"filtro\"></textarea>\r\n <label>{{'sintaxis' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\">\r\n <p-fieldset class=\"fieldsintitulo\" class=\"fieldsintitulo\">\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\">\r\n <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'resultado' | translate}}</label>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\" *ngIf=\"reporteMarcadorDinamico.tipoCampo =='C'\"></div>\r\n <div class=\"field col-12 md:col-6 lg:col-6 mb-0\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <label class=\"font-semibold text-gray-900 text-base ml-1\" >{{'label' | translate}}</label>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"formato\" />\r\n <label>{{'formato' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"descripcion\" />\r\n <label>{{'titulo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"ancho\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\r\n <label>{{'ancho' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' == reporteMarcadorDinamico.banda \"></div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"anchoJasperLabel\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\r\n <label>{{'ancho' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"'detalle' != reporteMarcadorDinamico.banda\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"resultadoX\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\r\n <label>{{'x' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"titulox\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\r\n <label>{{'x' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"'detalle' != reporteMarcadorDinamico.banda\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"resultadoY\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\r\n <label>{{'y' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C' && 'detalle' != reporteMarcadorDinamico.banda \">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" formControlName=\"tituloy\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\r\n <label>{{'y' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaAlineacion\" [autoDisplayFirst]=\"false\" \r\n formControlName=\"tipoReporte\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'alineacion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaAlineacion\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n formControlName=\"tipoGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'alineacion' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"reporteMarcadorDinamico.tipoDato == 'N' && reporteMarcadorDinamico.tipoCampo !='C'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaOperaciones\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n formControlName=\"operacion\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'operacion' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n </form>\r\n \r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{reporteMarcadorDinamico.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{reporteMarcadorDinamico.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaDinamico()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"reporteMarcadorDinamico.llave != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarColumnaDinamico($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n \r\n </p-tabView>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'reporte' | translate }} {{'texto' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.archivoTexto\" size=\"50\"\r\n maxlength=\"200\">\r\n <label>{{'nombrearchivo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSeparadores\" [(ngModel)]=\"reporteFuente.separador\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporteFuente.separador) && clickGuardarReporteTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporteFuente.separador) && clickGuardarReporteTexto\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'separador' | translate }}*</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.cifradoTexto\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarSeparador()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex justify-content-between lign-items-center mb-3\">\r\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoMarcadorTexto()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorTexto\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorTexto\">\r\n <button pButton pRipple (click)=\"verNuevoMarcadorTexto = false; clickGuardarMarcadorTexto = false;\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaMarcadoresTexto\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" \r\n [rows]=\"10\" [totalRecords]=\"listaMarcadoresTexto.length\"\r\n [paginator]=\"listaMarcadoresTexto.length > 10\" *ngIf=\"!verNuevoMarcadorTexto\"\r\n (onRowSelect)=\"verMarcadorTexto($event)\" (onRowUnselect)=\"verMarcadorTexto($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'tipo' | translate }}</th>\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'formato' | translate }}</th>\r\n <th>{{'orden' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-marctexto>\r\n <tr [pSelectableRow]=\"marctexto\">\r\n <td>{{marctexto.tipoGrafico | reporteFuentePipe : 'listaTipoMarcadoresTexto'}}</td>\r\n <td>{{marctexto.nombreColumna}}</td>\r\n <td>{{marctexto.formato}}</td>\r\n <td>{{marctexto.alto}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorTexto\"> \r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoMarcadorTexto\" [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"marcadorTexto.tipoGrafico\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.tipoGrafico) && clickGuardarMarcadorTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.tipoGrafico) && clickGuardarMarcadorTexto\"></p-dropdown>\r\n <label>{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico == 'D'\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\"\r\n [(ngModel)]=\"marcadorTexto.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.reporteColumna) && clickGuardarMarcadorTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.reporteColumna) && clickGuardarMarcadorTexto\"></p-dropdown>\r\n <label>{{'columna' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.formato\" maxlength=\"50\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.formato) && clickGuardarMarcadorTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.formato) && clickGuardarMarcadorTexto\">\r\n <label>{{marcadorTexto.tipoGrafico == 'D' ? ('formato' | translate)+'*' : ('descripcion' | translate)+'*' }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico == 'D'\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.ancho\" maxlength=\"22\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.ancho) && clickGuardarMarcadorTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.ancho) && clickGuardarMarcadorTexto\">\r\n <label>{{'ancho' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorTexto.tipoGrafico\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorTexto.alto\" maxlength=\"22\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorTexto.alto) && clickGuardarMarcadorTexto\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorTexto.alto) && clickGuardarMarcadorTexto\">\r\n <label>{{'orden' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorTexto.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{marcadorTexto.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorTexto()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"marcadorTexto.llave != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarMarcadoTexto($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'tabla' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.nombreTabla\" maxlength=\"4000\">\r\n <label>{{'nombretabla' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-8\">\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p-pickList [source]=\"listaTabla\" [target]=\"listaNoTabla\" sourceHeader=\"Asociado\" sourceFilterPlaceholder=\"Asociado\"\r\n targetHeader=\"Desasociado\" [dragdrop]=\"true\" [responsive]=\"true\" targetFilterPlaceholder=\"Desasociado\"\r\n filterBy=\"nombre\" *ngIf=\"isFuente()\" (onSourceReorder)=\"reorderTabla($event)\"\r\n (onMoveAllToTarget)=\"moverADesasociadoTabla($event)\" (onMoveAllToSource)=\"moverAAsociadoTabla($event)\"\r\n (onMoveToTarget)=\"moverADesasociadoTabla($event)\" (onMoveToSource)=\"moverAAsociadoTabla($event)\">\r\n <ng-template let-tabla pTemplate=\"item\">\r\n <div>\r\n <label>{{tabla.nombre}}</label>\r\n </div>\r\n </ng-template>\r\n </p-pickList>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'archivoxml' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.tagEncabezado\"></textarea>\r\n <label>{{'tagencabezado' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.tagCierreEncabezado\"></textarea>\r\n <label>{{'tagcierreencabezado' | translate }}</label>\r\n </p-floatLabel> \r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.estructuraRegistro\"></textarea>\r\n <label>{{'tagregistro' | translate }}</label>\r\n </p-floatLabel> \r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.cifradoXml\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <h1 class=\"text-xl\">{{'marcadores' | translate}}</h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoMarcadorXML()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorXML\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorXML\">\r\n <button pButton pRipple (click)=\"verNuevoMarcadorXML = false; clickGuardarMarcadorXML = false;\" label= \"{{'listado' | translate}} {{'marcadores' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaXML\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" \r\n [rows]=\"10\" [totalRecords]=\"listaXML.length\"\r\n [paginator]=\"listaXML.length > 10\" *ngIf=\"!verNuevoMarcadorXML\"\r\n (onRowSelect)=\"verMarcadorXML($event)\" (onRowUnselect)=\"verMarcadorXML($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'descripcion' | translate }}</th>\r\n <th>{{'tipo' | translate }}</th>\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'marcador' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-marctexto>\r\n <tr [pSelectableRow]=\"marctexto\">\r\n <td>{{marctexto.descripcion}}</td>\r\n <td>{{marctexto.tipo | reporteFuentePipe : 'listaTipoDatoMarcadores'}}</td>\r\n <td>{{marctexto.nombreColumna}}</td>\r\n <td>{{marctexto.marcador}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div class=\"card mt-3\" *ngIf=\"verNuevoMarcadorXML\"> \r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.descripcion\" maxlength=\"100\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorXML.descripcion) && clickGuardarMarcadorXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorXML.descripcion) && clickGuardarMarcadorXML\">\r\n <label>{{'descripcion' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaTipoMarcadorXML\" [autoDisplayFirst]=\"false\" \r\n [(ngModel)]=\"marcadorXML.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorXML.tipo) && clickGuardarMarcadorXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorXML.tipo) && clickGuardarMarcadorXML\"></p-dropdown>\r\n <label>{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MA','MR'].includes(marcadorXML.tipo)\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.marcador\" >\r\n <label>{{'marcador' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'TB'\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.marcador\" maxlength=\"5\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" >\r\n <label>{{'tabla' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MA'\" >\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"marcadorXML.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\" ></p-dropdown>\r\n <label>{{'columna' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MA'\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"marcadorXML.formato\" >\r\n <label>{{'formato' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'MR'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.textoRegistro\" ></textarea>\r\n <label>{{'texto' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MR','TB'].includes(marcadorXML.tipo)\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaFuentes\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"marcadorXML.fuente\" optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\r\n <label>{{'fuente' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"['MR','TB'].includes(marcadorXML.tipo)\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.filtro\"></textarea>\r\n <label>{{'filtro' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"marcadorXML.tipo == 'TB'\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"marcadorXML.estructuraTablaXML\"></textarea>\r\n <label>{{'estructuratabla' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorXML.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{marcadorXML.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorXML()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"marcadorXML.llave != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarMarcadorXML($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"verNuevoMarcadorXML && marcadorXML.llave != null && (marcadorXML.tipo == 'MR' || marcadorXML.tipo == 'TB')\">\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCampoTablaXML()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table [value]=\"listaCamposMarcadorXML\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"10\" [totalRecords]=\"listaCamposMarcadorXML.length\"\r\n [paginator]=\"listaCamposMarcadorXML.length > 10\" \r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \r\n editMode=\"row\" dataKey=\"llave\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"width: 30%;\">{{'campo' | translate }}</th>\r\n <th style=\"width: 30%;\">{{'marcador' | translate }}</th>\r\n <th style=\"width: 30%;\">{{'formato' | translate }}</th>\r\n <th style=\"width: 10%\"> </th>\r\n </tr>\r\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verReporteMarcadorDetalleXML\">\r\n <td style=\"width: 30%;\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.campoFuente\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.campoFuente) && clickGuardarMarcadorCampoXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.campoFuente) && clickGuardarMarcadorCampoXML\">\r\n </td>\r\n <td style=\"width: 30%;\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.marcador\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.marcador) && clickGuardarMarcadorCampoXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campoMarcadorInsertarXML.marcador) && clickGuardarMarcadorCampoXML\">\r\n </td>\r\n <td style=\"width: 30%;\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campoMarcadorInsertarXML.formato\" style=\"width: -webkit-fill-available\">\r\n </td>\r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\" >\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCampoMarcadorXML(campoMarcadorInsertarXML)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"verReporteMarcadorDetalleXML = false\" icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"campo\">\r\n <td style=\"width: 30%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.campoFuente\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampoXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.campoFuente) && clickGuardarMarcadorCampoXML\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.campoFuente}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 30%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.marcador\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(campo.marcador) && clickGuardarMarcadorCampoXML\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(campo.marcador) && clickGuardarMarcadorCampoXML\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.marcador}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 30%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.formato\" style=\"width: -webkit-fill-available\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{campo.formato}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n \r\n \r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarCampoMarcadorXML(campo)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\" (click)=\"cargarListaCampoMarcadorXMLAsync()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarCampoMarcadorXML($event,campo)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'columnario' | translate }}\">\r\n <p-accordion (onOpen)=\"cambiarTabColumnario($event)\" >\r\n <p-accordionTab [selected]=\"true\" >\r\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\r\n {{'columnasbasicas'|translate}}\r\n </ng-template>\r\n <div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoColumnaBasica()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoReporteColumnario\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoReporteColumnario\">\r\n <button pButton pRipple (click)=\"verNuevoReporteColumnario = false; clickGuardarReporteColumnario = false;\" label= \"{{'listado' | translate}} {{'columnasbasicas' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"listaReporteColumnario\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" \r\n [rows]=\"10\" [totalRecords]=\"listaReporteColumnario.length\"\r\n [paginator]=\"listaReporteColumnario.length > 10\" *ngIf=\"!verNuevoReporteColumnario\"\r\n (onRowSelect)=\"verReporteColumnario($event)\" (onRowUnselect)=\"verReporteColumnario($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'nombre' | translate }}</th>\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'tipo' | translate }}</th>\r\n <th>{{'orden' | translate }}</th>\r\n <th>{{'operacion' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.nombre}}</td>\r\n <td>{{bean.nombreColumna}}</td>\r\n <td>{{bean.tipo | reporteColumnarioPipe: 'listaTipoColumna'}}</td>\r\n <td>{{bean.orden}}</td>\r\n <td>{{bean.operacion | reporteColumnarioPipe: 'listaOperacion'}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <p-fieldset class=\"fieldsintitulo\" *ngIf=\"verNuevoReporteColumnario\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.nombre\" maxlength=\"100\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.nombre) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.nombre) && clickGuardarReporteColumnario\">\r\n <label>{{'nombre' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n \r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaTipoColumnas\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.tipo) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.tipo) && clickGuardarReporteColumnario\"></p-dropdown>\r\n <label>{{'tipocolumna' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaColumnas\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.reporteColumna\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.reporteColumna) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.reporteColumna) && clickGuardarReporteColumnario\"></p-dropdown>\r\n <label>{{'columna' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"columnaBasica.tipo == 'D'\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaOperacionesColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.operacion\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacion) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacion) && clickGuardarReporteColumnario\"></p-dropdown>\r\n <label>{{'operacion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaOperacionesExcelColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.operacionHorizontal\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionHorizontal) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionHorizontal) && clickGuardarReporteColumnario\"></p-dropdown>\r\n <label>{{'operacionhorizontal' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <!-- fila Operacion Vertical -->\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.columnaOperacionVertical\" maxlength=\"5\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.columnaOperacionVertical) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.columnaOperacionVertical) && clickGuardarReporteColumnario\">\r\n <label>{{'columnaoperacion' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <!-- Operacion Verticial -->\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoColumna()\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaOperacionesExcelColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.operacionVertical\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionVertical) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.operacionVertical) && clickGuardarReporteColumnario\"></p-dropdown>\r\n <label>{{'operacionvertical' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <!-- Orden -->\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarOrden()\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.orden\" maxlength=\"5\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.orden) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.orden) && clickGuardarReporteColumnario\">\r\n <label>{{'orden' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n <!-- Ordenamiento Filas -->\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isTipoLabel() || isTipoFila()\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaOrdenamiento\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaBasica.orderBy\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'ordenamiento' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <!-- Ordenamiento Datos de la consulta -->\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarOrdenConsulta()\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"columnaBasica.ordenConsulta\" maxlength=\"5\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaBasica.ordenConsulta) && clickGuardarReporteColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaBasica.ordenConsulta) && clickGuardarReporteColumnario\"\r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" >\r\n <label>{{'ordenconsulta' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{columnaBasica.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{columnaBasica.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaBasica()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"columnaBasica.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarColumnaBasica($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <p-accordion (onOpen)=\"cambiarTabColumnario($event)\">\r\n <p-accordionTab >\r\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\r\n {{'datosadicionales'|translate}}\r\n </ng-template>\r\n <p-fieldset class=\"fieldsintitulo\" >\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n \r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"reporteFuente.archivoExcelColumnario ? reporteFuente.archivoExcelColumnario: ''\"\r\n [extensiones]=\"'xls;xlsx;xlsm'\" [mostraroblicargo]=\"true\" [labelrar]=\"'plantilla' | translate\"\r\n (onSelected)=\"obtenerArchivoColumnario($event)\"></app-input-helper-seleccion-plantilla>\r\n </p-floatLabel>\r\n </div>\r\n \r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.hojaExcel\" size=\"25\" maxlength=\"20\">\r\n <label>{{'nombre' | translate }} {{'de' | translate }} {{'la' | translate }} {{'hoja' |\r\n translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"reporteFuente.filaInicioColumnario\" maxlength=\"5\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\r\n <label>{{'filainiciocolumnario' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" appendTo=\"body\"\r\n [(ngModel)]=\"reporteFuente.cifradoColumnario\" optionLabel=\"nombre\"\r\n optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"reporteFuente.sintaxisColumnario\"></textarea>\r\n <label>{{'sintaxiscolumnario' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n \r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\r\n </button>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n <div class=\"flex justify-content-between align-items-center mb-3 mt-3\">\r\n <h1 class=\"text-xl\">{{'columnaadicional' | translate}}</h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevaColumnaAdicional()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoColumnaAdicional\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoColumnaAdicional\">\r\n <button pButton pRipple (click)=\"verNuevoColumnaAdicional = false; clickGuardarColumnaAdicional = false;\" label= \"{{'listado' | translate}} {{'columnaadicional' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"columnasAdicionales\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" \r\n [rows]=\"10\" [totalRecords]=\"columnasAdicionales.length\"\r\n [paginator]=\"columnasAdicionales.length > 10\" *ngIf=\"!verNuevoColumnaAdicional\"\r\n (onRowSelect)=\"verDetalleAdicional($event)\" (onRowUnselect)=\"verDetalleAdicional($event)\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'nombre' | translate }}</th>\r\n <th>{{'orden' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-columnaadicional>\r\n <tr [pSelectableRow]=\"columnaadicional\">\r\n <td>{{columnaadicional.nombre}}</td>\r\n <td>{{columnaadicional.orden}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <p-fieldset class=\"fieldsintitulo\" *ngIf=\"verNuevoColumnaAdicional\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-3\" >\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"columnaAdicional.nombre\" maxlength=\"100\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.nombre) && clickGuardarColumnaAdicional\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.nombre) && clickGuardarColumnaAdicional\">\r\n <label>{{'alias' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3\" >\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"columnaAdicional.orden\" maxlength=\"5\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orden) && clickGuardarColumnaAdicional\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orden) && clickGuardarColumnaAdicional\" />\r\n <label>{{'orden' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaOrdenamiento\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"columnaAdicional.orderBy\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orderBy) && clickGuardarColumnaAdicional\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.orderBy) && clickGuardarColumnaAdicional\"></p-dropdown>\r\n <label>{{'ordenamiento' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n \r\n <div class=\"field col-12 md:col-3\" >\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"columnaAdicional.ordenConsulta\" maxlength=\"5\" \r\n oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.ordenConsulta) && clickGuardarColumnaAdicional\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.ordenConsulta) && clickGuardarColumnaAdicional\" />\r\n <label>{{'ordenconsulta' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\" >\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"columnaAdicional.sintaxis\" maxlength=\"4000\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(columnaAdicional.sintaxis) && clickGuardarColumnaAdicional\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(columnaAdicional.sintaxis) && clickGuardarColumnaAdicional\"></textarea>\r\n <label>{{'sintaxis' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{columnaAdicional.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{columnaAdicional.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarColumnaAdicional()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"columnaAdicional.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarColumnaAdicional($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </p-accordionTab>\r\n <p-accordionTab >\r\n <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\r\n {{'marcadores'|translate}}\r\n </ng-template>\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\r\n (click)=\"nuevoMarcadorColumnario()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"!verNuevoMarcadorColumnario\">\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"verNuevoMarcadorColumnario\">\r\n <button pButton pRipple (click)=\"verNuevoMarcadorColumnario = false; clickGuardarMarcadorColumnario = false;\" label= \"{{'listado' | translate}} {{'marcador' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n </div>\r\n <p-table [value]=\"marcadoresColumnario\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\r\n dataKey=\"llaveTabla\" selectionMode=\"single\" \r\n [rows]=\"10\" [totalRecords]=\"marcadoresColumnario.length\"\r\n [paginator]=\"marcadoresColumnario.length > 10\" *ngIf=\"!verNuevoMarcadorColumnario\"\r\n (onRowSelect)=\"verDetalleMarcadorColumnario($event)\" (onRowUnselect)=\"verDetalleMarcadorColumnario($event)\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'nombre' | translate }}</th>\r\n <th>{{'tipomarcador' | translate }}</th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-marcador>\r\n <tr [pSelectableRow]=\"marcador\">\r\n <td>{{marcador.marcador}}</td>\r\n <td>{{marcador.tipo | reporteColumnarioPipe: 'listaTipoMarcador'}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <p-fieldset class=\"fieldsintitulo\" *ngIf=\"verNuevoMarcadorColumnario\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\" >\r\n <div class=\"field col-12 md:col-4\" >\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"marcadorColumnario.descripcion\" maxlength=\"4000\" \r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.descripcion) && clickGuardarMarcadorColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.descripcion) && clickGuardarMarcadorColumnario\" />\r\n <label>{{'descripcion' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\" >\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"marcadorColumnario.marcador\" maxlength=\"50\" \r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.marcador) && clickGuardarMarcadorColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.marcador) && clickGuardarMarcadorColumnario\" />\r\n <label>{{'marcador' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaTipoMarcadorColumnario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n [(ngModel)]=\"marcadorColumnario.tipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.tipo) && clickGuardarMarcadorColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.tipo) && clickGuardarMarcadorColumnario\"></p-dropdown>\r\n <label>{{'tipo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n \r\n <div class=\"field col-12 md:col-12\" >\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-50 max-h-100\" pInputTextarea [(ngModel)]=\"marcadorColumnario.textoRegistro\" maxlength=\"4000\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.textoRegistro) && clickGuardarMarcadorColumnario\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(marcadorColumnario.textoRegistro) && clickGuardarMarcadorColumnario\"></textarea>\r\n <label>{{'valor' | translate}} *</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" >\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons {{marcadorColumnario.llaveTabla ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\"\r\n label=\"{{marcadorColumnario.llaveTabla ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardarMarcadorColumnario()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n *ngIf=\"marcadorColumnario.llaveTabla != null\" label=\"{{'link_eliminar' | translate}}\"\r\n (click)=\"eliminarMarcadorColumnario($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </p-accordionTab>\r\n </p-accordion>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'grafica' | translate }}\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-2\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.codigo\" size=\"25\"\r\n maxlength=\"100\">\r\n <label>{{'codigo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [(ngModel)]=\"reporteFuente.tituloGrafico\" size=\"25\"\r\n maxlength=\"100\">\r\n <label>{{'titulo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipoGrafico\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporteFuente.tipoGrafico\" optionLabel=\"nombre\"\r\n optionValue=\"codigo\"></p-dropdown>\r\n <label>{{'tipo' | translate }}</label> \r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\" *ngIf=\"isSql()\">\r\n <button pButton pRipple class=\"ml-2 p-button-outlined background-100\" icon=\"glyphicons glyphicons-refresh\" \r\n label=\"{{'link_actualizar' | translate}}\" (click)=\"guardarGrafico()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"pi pi-eye\"\r\n label=\"{{'link_ver' | translate}}\" (click)=\"verGrafico()\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <p-table [value]=\"paginadorColumnas\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\r\n [rows]=\"20\" [totalRecords]=\"paginadorColumnas.length\" [paginator]=\"paginadorColumnas.length > 20\" >\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'columna' | translate }}</th>\r\n <th>{{'sintaxis' | translate }}</th>\r\n <th>{{'tipo' | translate }}</th>\r\n <th>{{'accion' | translate }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.nombre}}</td>\r\n <td>{{bean.sintaxis}}</td>\r\n <td>{{bean.tipoDato | reporteFuentePipe : 'listaTipoDato'}}</td>\r\n <td>\r\n <p-dropdown [options]=\"listaGraficoSencillo\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"bean.graficoFuente\" optionLabel=\"nombre\"\r\n optionValue=\"codigo\"></p-dropdown>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table> \r\n\r\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\r\n <h1 class=\"text-xl\">Colores</h1>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoColorCategoria()\" icon=\"pi pi-plus\"\r\n [disabled]=\"habilitaCampo\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table [value]=\"paginadorColoresGrafica\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"10\" [totalRecords]=\"paginadorColoresGrafica.length\"\r\n [paginator]=\"paginadorColoresGrafica.length > 10\" \r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \r\n editMode=\"row\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"width: 45%\">{{'categoria' | translate}}</th>\r\n <th style=\"width: 45%\">{{'color' | translate}}</th>\r\n <th style=\"width: 10%\"> </th>\r\n </tr>\r\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"verColorCategoriaDetalle\">\r\n <td style=\"width: 45%\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"colorCategoria.titulo\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(colorCategoria.titulo) && clickGuardarColorCategoria\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(colorCategoria.titulo) && clickGuardarColorCategoria\">\r\n </td>\r\n <td style=\"width: 45%\">\r\n <div style=\"width: 100%\">\r\n <p-colorPicker [(ngModel)]=\"colorCategoria.banda\" appendTo=\"body\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(colorCategoria.banda) && clickGuardarColorCategoria\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(colorCategoria.banda) && clickGuardarColorCategoria\" />\r\n </div>\r\n </td>\r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarColorCategoria(colorCategoria)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"verColorCategoriaDetalle = false\" icon=\"pi pi-times\" (click)=\"cancelarColorCategoria()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-color let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"color\" style=\"width: 100%\">\r\n <td style=\"width: 45%\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"color.titulo\" style=\"width: -webkit-fill-available\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(color.titulo) && clickGuardarColorCategoria\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(color.titulo) && clickGuardarColorCategoria\">\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{color.titulo}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 45%\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <div style=\"width: 100%\">\r\n <p-colorPicker [(ngModel)]=\"color.banda\" appendTo=\"body\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(color.banda) && clickGuardarColorCategoria\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(color.banda) && clickGuardarColorCategoria\"/>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n <p-colorPicker [(ngModel)]=\"color.banda\" [disabled]=\"true\" />\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%\">\r\n <div class=\"flex justify-content-end\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarColorCategoria(color)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\" (click)=\"cancelarEdicionColor()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarColorCategoria($event, color)\" [disabled]=\"habilitaCampo\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div style=\"width: 85%\" *ngIf=\"grafica\">\r\n <p-chart [type]=\"tipoGrafica\" [data]=\"grafica.datosGrafica.data\" [options]=\"grafica.datosGrafica.options\"></p-chart>\r\n </div>\r\n </p-tabPanel>\r\n</p-tabView>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel'; \r\nimport { EjecucionReporteService } from '../../services/ejecucionreporte.service';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { InputTextarea, InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-popup-sentencia',\r\n imports: [DialogModule, InputTextareaModule, PanelModule, TranslateModule, FormsModule,],\r\n standalone: true,\r\n providers: [MessageService],\r\n templateUrl: './popup-sentencia.component.html',\r\n styleUrls: ['./popup-sentencia.component.scss']\r\n})\r\nexport class PopupSentenciaComponent implements OnInit {\r\n\r\n @Output() public regresar: EventEmitter<any> = new EventEmitter();\r\n @Input() public reporte: ReporteFuenteModel;\r\n @Input() public parametros: any[] = [];\r\n public listaEntrada: any[] = []\r\n \r\n public sentencia: string;\r\n @Input() public mostrarPopup: boolean;\r\n \r\n constructor(private reporteService: EjecucionReporteService,\r\n private notifService: ToastService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n mostrar(){\r\n this.sentencia = ''\r\n this.parametros.forEach(element => {\r\n this.listaEntrada.push(element.unionDTO)\r\n });\r\n \r\n this.reporteService.obtenerSentencia({\r\n reporteFuenteDTO: this.reporte,\r\n listaReporteEntrada: this.listaEntrada\r\n }).subscribe({\r\n next: (data) => { \r\n this.sentencia = data.resultado;\r\n },\r\n })\r\n }\r\n\r\n ocultar(){\r\n this.mostrarPopup = false;\r\n this.regresar.emit(false);\r\n\r\n }\r\n\r\n}\r\n","<p-dialog id='popupSentencia' header=\"{{'sentencia' | translate}}\" [(visible)]=\"mostrarPopup\" (onShow)=\"mostrar()\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\r\n\r\n <p-panel>\r\n <textarea pInputTextarea [(ngModel)]=\"sentencia\" rows=\"5\" cols=\"30\"\r\n [disabled]=\"true\"\r\n class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\">\r\n </textarea>\r\n </p-panel>\r\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { GeneralPipe } from '../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\r\nimport { CargarArchivosService } from '../../../shared/servicios/cargar-archivos.service';\r\nimport { EncriptadoBasicoService } from '../../../shared/servicios/encriptado-basico.service';\r\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\r\nimport { ReporteFuentePipe } from '../../pipes/reporte-fuente.pipe';\r\nimport { EjecucionReporteService } from '../../services/ejecucionreporte.service';\r\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { ReporteEntradaModel } from '../../../seguridad/modelos/ReporteEntradaModel';\r\nimport { ReporteSoporteModel } from '../../../seguridad/modelos/ReporteSoporte';\r\nimport { TableColumn } from '../../../core/modelos/table-column.model';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { CargarControlFuncionalidadService } from '../../../core/servicios/cargar-control-funcionalidad.service';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { TableModule } from 'primeng/table';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { PopupSentenciaComponent } from '../popup-sentencia/popup-sentencia.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\n\r\n@Component({\r\n selector: 'app-popup-reporte',\r\n imports: [CommonModule, DialogModule, ConfirmPopupModule, AccordionModule, TableModule, TranslateModule, DatePipe, FieldsetModule, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, RadioButtonModule, PopupSentenciaComponent, FormsModule, FloatLabelModule],\r\n standalone: true,\r\n providers: [MessageService, ConfirmationService],\r\n templateUrl: './popup-reporte.component.html',\r\n styleUrls: ['./popup-reporte.component.scss']\r\n})\r\nexport class PopupReporteComponent implements OnInit {\r\n\r\n @Input() public mostrar = false;\r\n @Input() public aplicacion: string;\r\n @Input() public reporte: ReporteFuenteModel = new ReporteFuenteModel;\r\n @Input() public entradasPuntoProceso: any[]=[];\r\n @Output() public regresar: EventEmitter<any> = new EventEmitter();\r\n\r\n public panel: string = 'entrada';\r\n public operacion: string;\r\n public listaEntrada: ReporteEntradaModel[] = [];\r\n public listaSegundoPlano: any[] = [];\r\n public parametros: any[] = [];\r\n public elementoBorrar: any = {};\r\n public generaciones: any[] = [];\r\n public operaciones: any[] = [];\r\n public mostrarOtraSeleccion: boolean;\r\n\tpublic mostrarArchivosSoporte: boolean;\r\n\tpublic mostrarConsultaCasoError: boolean;\r\n public correo: string;\r\n public tipoReporte: string;\r\n public soporteBase: string;\r\n public tipoArchivo: string;\r\n public bloquearCorreo: boolean;\r\n public mapaTipoArchivos;\r\n public listadoArchivoSoporte: ReporteSoporteModel[] = [];\r\n public mostrarPopupSentencia: boolean;\r\n\r\n public items: MenuItem[];\r\n public vistaVisualizar: string;\r\n paginator={rows:2,totalRecords:0}\r\n public mostrarParametros: boolean;\r\n\tpublic mostrarQueDeseaHacer: boolean;\r\n\r\n public columnas: TableColumn[] = [];\r\n public listaRegistro: any[] = [];\r\n\r\n public existeJasper: boolean = false;\r\n\r\n constructor(private generalService: GeneralService,\r\n private ejecucionReporteService: EjecucionReporteService,\r\n private confirmationService: ConfirmationService,\r\n private notificacionService: ToastService,\r\n private authService: AuthService,\r\n private translateService: TranslateService,\r\n private cargarArchivoService: CargarArchivosService,\r\n public utilsService: UtilsService,\r\n private controlFuncionalidad: CargarControlFuncionalidadService,\r\n private encriptadoBasico: EncriptadoBasicoService,\r\n private reporteFuentePipe: ReporteFuentePipe,\r\n private generalPipe: GeneralPipe,\r\n private cargarArchivo: CargarArchivosService,\r\n private encriptadorArchivo: EncriptadoBasicoService,) { } \r\n \r\n ngOnInit(): void {\r\n this.mapaTipoArchivos = this.reporteFuentePipe.MAPA_TIPO_ARCHIVOS; \r\n this.aplicacion = this.authService.getTokenKey('aplicacion')\r\n }\r\n\r\n async mostrarPopup(){\r\n this.panel = 'entrada';\r\n this.mostrarQueDeseaHacer = false;\r\n this.tipoReporte = null;\r\n this.mostrarConsultaCasoError = this.validarControlFuncionalidad('reporte:versentenciaerror');\r\n this.operacion = null;\r\n this.elementoBorrar = {}\r\n this.listaSegundoPlano = []\r\n this.listaRegistro = [];\r\n this.columnas = [];\r\n this.existeJasper = false;\r\n if (this.reporte.llave) {\r\n var resultado = await this.ejecucionReporteService.getDatosEjecucionReporte({llave: this.reporte.llave}).toPromise();\r\n this.reporte = resultado.reporte;\r\n delete this.reporte['alias']\r\n this.cargarListaEntrada();\r\n this.traerSegundoPlano();\r\n this.cargarCorreo();\r\n await this.validarExisteJasper();\r\n await this.cargarGeneraciones();\r\n this.cargarOperaciones();\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n\r\n cargarMenu(){\r\n this.items = [\r\n \r\n {\r\n label: this.translateService.instant('ejecucion'),\r\n icon: 'glyphicons glyphicons-plus-sign',\r\n command: (event) => {\r\n this.vistaVisualizar = 'entrada';\r\n },\r\n },\r\n {\r\n label: this.translateService.instant('segundoplano'),\r\n icon: 'glyphicons glyphicons-file-minus',\r\n command: (event) => {\r\n this.vistaVisualizar = 'segundoplano';\r\n },\r\n visible: this.listaSegundoPlano.length > 0,\r\n }\r\n ]\r\n }\r\n\r\n async cargarGeneraciones(){\r\n this.generaciones = [];\r\n if ( this.utilsService.isNotBlank(this.reporte.tituloParametro) && this.existeJasper){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_JASPERDINAMICO, \r\n label: this.reporteFuentePipe.DESC_GENERACION_JASPERDINAMICO})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.jasperFijo) && this.utilsService.isNotBlank(this.reporte.modoFijo)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_JASPERFIJO, \r\n label: this.reporteFuentePipe.DESC_GENERACION_JASPERFIJO})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.archivoTodo) && this.utilsService.isNotBlank(this.reporte.hojaExcel)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_EXCEL, \r\n label: this.reporteFuentePipe.DESC_GENERACION_EXCEL})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.archivoIndividual) || this.reporte.unicoArchivo == 'N'){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_PLANTILLA, \r\n label: this.reporteFuentePipe.DESC_GENERACION_PLANTILLA})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.separador)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_ARCHIVOPLANO, \r\n label: this.reporteFuentePipe.DESC_GENERACION_ARCHIVOPLANO})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.nombreTabla)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_TABLA, \r\n label: this.reporteFuentePipe.DESC_GENERACION_TABLA})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.tagEncabezado) && this.utilsService.isNotBlank(this.reporte.estructuraRegistro)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_XML, \r\n label: this.reporteFuentePipe.DESC_GENERACION_XML})\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.archivoExcelColumnario) && this.utilsService.isNotBlank(this.reporte.hojaExcelColumnario)){\r\n this.generaciones.push({value: this.reporteFuentePipe.GENERACION_COLUMNARIO, \r\n label: this.reporteFuentePipe.DESC_GENERACION_COLUMNARIO})\r\n }\r\n }\r\n\r\n async validarExisteJasper(){\r\n try {\r\n var data = await this.cargarArchivo.descargarArchivo(this.encriptadorArchivo.encriptar('reportes/' + this.reporte.llave + '.jrxml'), 'ruta_plantillas', this.aplicacion).toPromise();\r\n if (data) {\r\n this.existeJasper = true;\r\n } \r\n } catch (error) {\r\n this.existeJasper = false;\r\n }\r\n }\r\n\r\n cargarOperaciones(){\r\n this.bloquearCorreo = true;\r\n this.operaciones = [];\r\n if (this.tipoReporte){\r\n if (this.tipoReporte != this.reporteFuentePipe.GENERACION_TABLA) {\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_DESCARGAR,\r\n label: this.reporteFuentePipe.DESC_OPERACION_DESCARGAR});\r\n \r\n if (this.validarControlFuncionalidad('reporte:enviocorreo')){\r\n this.bloquearCorreo = false;\r\n }\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_ENVIARCORREO,\r\n label: this.reporteFuentePipe.DESC_OPERACION_ENVIARCORREO});\r\n if (this.reporteFuentePipe.MOMENTOS_SEGUNDO_PLANO == this.reporte.momento) {\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_SEGUNDOPLANO,\r\n label: this.reporteFuentePipe.DESC_OPERACION_SEGUNDOPLANO});\r\n }\r\n if ((this.tipoReporte == this.reporteFuentePipe.GENERACION_JASPERFIJO && this.reporte.modoFijo == 'P')\r\n || this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.descargarFuente != 'S'){\r\n \r\n if (this.reporte.archivoHtml && this.reporte.campoEmail){\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_ENVIOMASIVO,\r\n label: this.reporteFuentePipe.DESC_OPERACION_ENVIOMASIVO});\r\n }\r\n if (this.reporte.publicacion && this.reporte.campoPublica){\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_PUBLICAR,\r\n label: this.reporteFuentePipe.DESC_OPERACION_PUBLICAR});\r\n }\r\n if (this.reporte.archivoHtml && this.reporte.campoEmail && this.reporte.publicacion && this.reporte.campoPublica ){\r\n this.operaciones.push({value: this.reporteFuentePipe.OPERACION_CORREOPUBLICAR,\r\n label: this.reporteFuentePipe.DESC_OPERACION_CORREOPUBLICAR});\r\n }\r\n }\r\n //pte proceso externo\r\n }\r\n }\r\n }\r\n\r\n cambioValorLista(event, parametro){\r\n if (event.value){\r\n let lista = event.value.split(':')\r\n if (parametro.unionDTO.tipoDato == 'N'){\r\n parametro.unionDTO.valor = parseInt(lista[0])\r\n } else {\r\n parametro.unionDTO.valor = lista[0]\r\n }\r\n }\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n \r\n cambioSoporteBase(event) {\r\n if (this.soporteBase == null) {\r\n this.cargarOperaciones();\r\n return;\r\n } \r\n this.generalService.queryForObject(new GeneralModel('ReporteSoporteDTO', null, false, {llaveTabla: this.soporteBase})).subscribe(archivoBase => {\r\n if (archivoBase == null) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.soporteBase = archivoBase.llaveTabla;\r\n\t\t\tthis.reporte.archivoIndividual = archivoBase.archivoIndividual;\r\n\t\t\tthis.cargarOperaciones();\r\n this.utilsService.resizeWindowIFrame();\r\n });\r\n \r\n }\r\n\r\n cargarCorreo(){\r\n this.generalService.queryForObject(new GeneralModel('UsuarioDTO', null, true, {login: this.authService.getTokenKey('usuario')})).subscribe(data => {\r\n this.correo = data.email;\r\n })\r\n }\r\n\r\n cargarListaEntrada(){\r\n this.mostrarParametros = false;\r\n if (this.entradasPuntoProceso.length > 0){\r\n this.parametros = this.entradasPuntoProceso; \r\n this.parametros.forEach(element => {\r\n if (element.unionDTO.solicitar == 'S'){\r\n this.mostrarParametros = true;\r\n }\r\n if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null){\r\n element.unionDTO.valor = new Date(element.unionDTO.valor)\r\n }\r\n })\r\n this.utilsService.resizeWindowIFrame();\r\n\r\n } else {\r\n this.ejecucionReporteService.obtenerListaEntradaEjecucion(this.reporte).subscribe(data => {\r\n this.parametros = data;\r\n this.parametros.forEach(element => {\r\n if (element.unionDTO.solicitar == 'S'){\r\n this.mostrarParametros = true;\r\n }\r\n if (element.unionDTO.tipoDato == 'F' && element.unionDTO.valor != null){\r\n element.unionDTO.valor = new Date(element.unionDTO.valor)\r\n }\r\n })\r\n this.utilsService.resizeWindowIFrame();\r\n })\r\n }\r\n }\r\n\r\n traerSegundoPlano(){\r\n let usuario = this.authService.getTokenKey('usuario')\r\n this.generalService.queryForList(new GeneralModel('EjecucionReporteDTO', null, false, {\r\n adicionado: usuario, \r\n reporteFuente: this.reporte.llave})).subscribe(data => {\r\n this.listaSegundoPlano = data;\r\n this.paginator.totalRecords = this.listaSegundoPlano.length;\r\n })\r\n }\r\n \r\n verSegundoPlano(event){\r\n this.elementoBorrar = event.data;\r\n this.elementoBorrar.fechaAdicionado = this.elementoBorrar.fechaAdicionado ? new Date(this.elementoBorrar.fechaAdicionado) : null\r\n this.elementoBorrar.inicia = this.elementoBorrar.inicia ? new Date(this.elementoBorrar.inicia) : null\r\n this.elementoBorrar.termina = this.elementoBorrar.termina ? new Date(this.elementoBorrar.termina) : null\r\n this.operacion = 'historico'\r\n this.panel = 'resultado'\r\n }\r\n\r\n eliminarSegundoPlano(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n header: this.translateService.instant('confirmar'),\r\n accept: () => {\r\n this.ejecucionReporteService.eliminarEjecucionReporte(this.elementoBorrar).subscribe(data =>{\r\n this.notificacionService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\r\n this.regresarSegundoPlano();\r\n this.traerSegundoPlano();\r\n })\r\n }\r\n })\r\n }\r\n\r\n descargarArchivo(){\r\n this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(this.elementoBorrar.archivo)).subscribe(blob => {\r\n \r\n const a = document.createElement('a')\r\n const objectUrl = URL.createObjectURL(blob)\r\n a.href = objectUrl\r\n let partes = this.elementoBorrar.archivo.split(\".\");\r\n let extension = partes[partes.length - 1];\r\n a.download = this.utilsService.generarLlave() + '.' + extension;\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n });\r\n }\r\n\r\n cambioTipoReporte(event){\r\n this.mostrarQueDeseaHacer = true;\r\n if (this.tipoReporte == this.reporteFuentePipe.GENERACION_PLANTILLA && this.reporte.unicoArchivo == 'N' ){\r\n this.mostrarArchivosSoporte = true;\r\n this.generalService.queryForList(new GeneralModel('ReporteSoporteDTO', null, false, {\r\n reporteFuente: this.reporte.llave,\r\n tipo:'S'\r\n })).subscribe(data => {\r\n this.listadoArchivoSoporte = data;\r\n })\r\n } else {\r\n this.mostrarArchivosSoporte = false;\r\n this.listadoArchivoSoporte = [];\r\n this.tipoArchivo = null;\r\n this.operacion = null;\r\n this.cargarOperaciones();\r\n //this.descargarArchivo = null;\r\n } \r\n }\r\n\r\n cambioTipoArchivo(event){\r\n this.cargarOperaciones();\r\n }\r\n\r\n regresarSegundoPlano(){\r\n this.elementoBorrar = {}\r\n this.panel = 'entrada'\r\n this.operacion = null;\r\n }\r\n\r\n ocultar(){\r\n this.tipoReporte = null;\r\n this.mostrar = false;\r\n this.regresar.emit(false);\r\n }\r\n\r\n validarControlFuncionalidad(valor: string): boolean {\r\n return this.controlFuncionalidad.getControlFuncionalidad(valor);\r\n }\r\n\r\n sentencia(){\r\n this.mostrarPopupSentencia = true\r\n }\r\n\r\n regresarSentencia(event){\r\n this.mostrarPopupSentencia = false;\r\n }\r\n\r\n enviarSegundoPlano(){\r\n let listaEntrada = []\r\n this.parametros.forEach(element => {\r\n listaEntrada.push(element.unionDTO)\r\n })\r\n this.ejecucionReporteService.enviarSegundoPlano({\r\n reporte: this.reporte,\r\n parametros: listaEntrada,\r\n tipoReporte: this.tipoReporte,\r\n operacion: this.operacion,\r\n correo: this.correo,\r\n }).subscribe(data => {\r\n this.notificacionService.showInfo(data.mensaje)\r\n })\r\n }\r\n\r\n descargarReporte(){\r\n\r\n if('F' == this.tipoReporte){\r\n this.reporte.tipoArchivo = this.tipoArchivo;\r\n }\r\n\r\n let listaEntrada = []\r\n this.parametros.forEach(element => {\r\n listaEntrada.push(element.unionDTO)\r\n })\r\n this.ejecucionReporteService.descargarReporte({\r\n reporte: this.reporte,\r\n parametros: listaEntrada,\r\n tipoReporte: this.tipoReporte,\r\n operacion: this.operacion,\r\n correo: this.correo,\r\n endpointGeneradorReportes: ''\r\n }).subscribe({\r\n next: data =>{\r\n console.log(data)\r\n this.notificacionService.showInfo(data.mensaje)\r\n if (!data.archivo) {\r\n return;\r\n }\r\n const decodedData = atob(data.archivo);\r\n const byteNumbers = new Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; i++) {\r\n byteNumbers[i] = decodedData.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n\r\n // Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo\r\n const blob = new Blob([byteArray], { type: data.mime });\r\n\r\n // Crea una URL del objeto Blob\r\n const url = URL.createObjectURL(blob);\r\n\r\n // Crea un enlace de descarga y haz clic en él para iniciar la descarga\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = data.nombreArchivo + data.extension;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // Limpia la URL creada\r\n URL.revokeObjectURL(url);\r\n }\r\n })\r\n }\r\n \r\n descargarReporteSinHilo(){\r\n let listaEntrada = []\r\n this.parametros.forEach(element => {\r\n listaEntrada.push(element.unionDTO)\r\n })\r\n this.ejecucionReporteService.descargarReporte({\r\n next: data =>{\r\n this.notificacionService.showInfo(data.mensaje)\r\n const decodedData = atob(data.archivo);\r\n const byteNumbers = new Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; i++) {\r\n byteNumbers[i] = decodedData.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n\r\n // Crea un objeto Blob con los bytes decodificados y el tipo MIME del archivo\r\n const blob = new Blob([byteArray], { type: data.mime });\r\n\r\n // Crea una URL del objeto Blob\r\n const url = URL.createObjectURL(blob);\r\n\r\n // Crea un enlace de descarga y haz clic en él para iniciar la descarga\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = data.nombreArchivo + '.' + data.extension;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // Limpia la URL creada\r\n URL.revokeObjectURL(url);\r\n },\r\n error: err => {\r\n this.notificacionService.showError(JSON.stringify(err.error.mensajeEtiqueta))\r\n }\r\n })\r\n }\r\n\r\n generarTabla(){\r\n this.panel = 'resultado'\r\n let listaEntrada = []\r\n this.columnas = [];\r\n this.parametros.forEach(element => {\r\n listaEntrada.push(element.unionDTO)\r\n })\r\n this.ejecucionReporteService.generarTabla({reporte: this.reporte, parametros: listaEntrada}).subscribe(data => {\r\n var columna: TableColumn;\r\n data.columnas.forEach(element => {\r\n columna = {\r\n field: element.nombre.toLowerCase(),\r\n header: element.nombre,\r\n width: 300,\r\n canOrder: true,\r\n };\r\n this.columnas.push(columna)\r\n });\r\n this.listaRegistro = data.listaRegistro;\r\n })\r\n }\r\n}\r\n","<p-confirmPopup></p-confirmPopup>\r\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\r\n\r\n <div *ngIf=\"panel == 'entrada'\">\r\n <!--Segundo plano-->\r\n <p-accordion [multiple]=\"true\">\r\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\r\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\r\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\r\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'estado' | translate }} </th>\r\n <th>{{'fechainicial' | translate }} </th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-entrada>\r\n <tr [pSelectableRow]=\"entrada\">\r\n <td>{{entrada.nombreEstado}}</td>\r\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-accordionTab>\r\n </p-accordion>\r\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\r\n <ng-template pTemplate=\"header\">\r\n <div>\r\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\r\n <span>{{'entrada' | translate}}</span>\r\n </div>\r\n </ng-template>\r\n <p-table [value]=\"parametros\" >\r\n <ng-template pTemplate=\"body\" let-parametro>\r\n <tr [pSelectableRow]=\"parametro\">\r\n <!--<td>\r\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\r\n </td>-->\r\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\r\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\r\n\r\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\r\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\r\n\r\n\r\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\r\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\r\n </p-inputNumber>\r\n\r\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"16\"\r\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\r\n </p-inputNumber>\r\n\r\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\r\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\r\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\r\n </p-dropdown>\r\n\r\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\r\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\r\n\r\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\r\n </p-floatLabel>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-fieldset>\r\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\r\n <ng-template pTemplate=\"header\">\r\n <div>\r\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\r\n <span>{{'generar' | translate}}</span>\r\n </div>\r\n </ng-template>\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid text-xs\">\r\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\r\n <div class=\"field-radiobutton\">\r\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\r\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\r\n <label [for]=\"valor.value\" class=\"ml-2\">\r\n {{ valor.label }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n\r\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\r\n <ng-template pTemplate=\"header\">\r\n <div>\r\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\r\n <span>¿Qué desea hacer?</span>\r\n </div>\r\n </ng-template>\r\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\r\n\r\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid text-xs\">\r\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\r\n <div class=\"field-radiobutton\">\r\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\r\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\r\n <label [for]=\"valor.codigo\" class=\"ml-2\">\r\n {{ valor.nombre }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"mostrarArchivosSoporte\">\r\n <div class=\"Detallereporte\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-12\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\r\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\r\n <label>Soporte Base:</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid text-xs\">\r\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\r\n <div class=\"field-radiobutton\">\r\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\r\n [(ngModel)]=\"operacion\" />\r\n <label [for]=\"valor.value\" class=\"ml-2\">\r\n {{ valor.label }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"operacion == 'E'\">\r\n <p-floatLabel>\r\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\r\n <label>{{'correo' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n </p-fieldset>\r\n \r\n\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\r\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\r\n (click)=\"sentencia()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\r\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\r\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\r\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\r\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\r\n <!--pte proceso externo-->\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\r\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\r\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\r\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\r\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"panel == 'resultado'\">\r\n <div *ngIf=\"operacion == 'historico'\">\r\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\r\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\r\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\r\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\r\n </button>\r\n </div>\r\n <div class=\" Inputgroup\">\r\n <div class=\"col-md-12\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-4 lg:col-4\">\r\n <p-floatLabel>\r\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\r\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\r\n <label>{{('fechainicial') | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4 lg:col-4\">\r\n <p-floatLabel>\r\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\r\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\r\n <label>{{('fechafinal') | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4 lg:col-4\">\r\n <p-floatLabel>\r\n <input pInputText type=\"text\" [readonly]=\"false\"\r\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\r\n <label>{{('estado') | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\r\n <label>{{('mensaje') | translate}}</label>\r\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\r\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\r\n [disabled]=\"true\"></textarea>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\r\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"tipoReporte == 'A'\" >\r\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\r\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-entrada>\r\n <tr>\r\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <p class=\"p-3 font-medium emptymessage\">\r\n {{'mensajetablavacia' | translate}}\r\n </p>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n</p-dialog>\r\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\r\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>","import { Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { RecursoPuntoModel } from '../../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { CruceRecursoPuntoModel } from '../../../../seguridad/modelos/CruceRecursoPuntoModel';\r\nimport { AtributoPuntoModel } from '../../../../seguridad/modelos/AtributoPuntoModel';\r\nimport { PuntoProcesoModel } from '../../../../seguridad/modelos/PuntoProcesoModel';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\n\r\n@Component({\r\n selector: 'detalle-punto-proceso-reporte',\r\n imports: [TranslateModule, CommonModule, ConfirmPopupModule, ButtonModule, TableModule, TabViewModule, DropdownModule, FormsModule, InputTextareaModule, FloatLabelModule],\r\n standalone: true,\r\n templateUrl: './detalle-punto-proceso-reporte.component.html',\r\n styleUrls: ['./detalle-punto-proceso-reporte.component.scss'],\r\n providers: [ConfirmationService, MessageService]\r\n})\r\nexport class DetallePuntoProcesoReporteComponent implements OnInit {\r\n\r\n public vistaVisualizar: string;\r\n public vistaVisualizarDetalle: string;\r\n public listaRecursoPunto: RecursoPuntoModel[] = []\r\n \r\n @Input() public modificarReporte : boolean;\r\n @Input() public llaveReporte : string;\r\n @Input() public llaveFuente : string;\r\n @Input() public tipoRecurso : string;\r\n\r\n recursoPuntoDTO: RecursoPuntoModel = new RecursoPuntoModel;\r\n destino: String;\r\n nuevo: boolean;\r\n recursosValidar: RecursoPuntoModel[] = [];\r\n cruces: CruceRecursoPuntoModel[] = [];\r\n listaEntrada: any[] = [];\r\n listaPuntosProceso: any[] = [];\r\n listaAtributoPunto: AtributoPuntoModel[] = [];\r\n listadoAtributoPunto: any[] = [];\r\n listaCruce: CruceRecursoPuntoModel[] = [];\r\n cruceRecursoPunto: CruceRecursoPuntoModel = new CruceRecursoPuntoModel();\r\n clickGuardar: boolean;\r\n clickGuardarCruce: boolean;\r\n paginatorCruce = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n paginator = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n public habilitaCampo: boolean = false;\r\n\r\n constructor(private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private notificacionBusService: ToastService, private generalPipe: GeneralPipe,\r\n public utilsService: UtilsService,private notificacionesBusService: ToastService,private confirmationService: ConfirmationService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.cargarListas();\r\n }\r\n\r\n verAction(event){\r\n this.recursoPuntoDTO = event.data;\r\n this.nuevo = false;\r\n this.vistaVisualizar = 'detalle' \r\n this.ver(this.recursoPuntoDTO, this.llaveReporte, null, 'R').then(data =>{})\r\n }\r\n\r\n nuevoPuntoProceso(){\r\n this.ver(null, this.llaveReporte, null, 'R').then(data =>{})\r\n\r\n }\r\n\r\n cargar(event){\r\n this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, {\r\n reporteFuente: this.llaveReporte,\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows,\r\n })).subscribe(data => {\r\n this.listaRecursoPunto = data;\r\n this.generalService.cantidadRegistros(new GeneralModel('RecursoPuntoDTO', null, false, {\r\n reporteFuente: this.llaveReporte\r\n })).subscribe(data => {\r\n this.paginator.totalRecords = data;\r\n })\r\n })\r\n \r\n }\r\n\r\n async cargarListas() {\r\n this.listaPuntosProceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('PuntoProcesoDTO', null, false, new PuntoProcesoModel()));\r\n }\r\n\r\n async loadCruce() {\r\n this.listaCruce = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, {recursoPunto: this.recursoPuntoDTO.llaveTabla})).toPromise();\r\n }\r\n\r\n\r\n\r\n async ver(recursoPuntoDTO: RecursoPuntoModel, llave: any, destino: String, tipoRecurso) {\r\n this.vistaVisualizar = 'detalle';\r\n this.llaveReporte = llave;\r\n this.tipoRecurso = tipoRecurso;\r\n this.nuevo = recursoPuntoDTO == null;\r\n this.recursoPuntoDTO = this.nuevo ? new RecursoPuntoModel() : recursoPuntoDTO;\r\n await this.cargarRecursoPunto();\r\n await this.cargarEntradas();\r\n if (!this.nuevo) {\r\n await this.loadCruce();\r\n await this.cargarAtributos(recursoPuntoDTO.puntoProceso);\r\n }\r\n }\r\n\r\n eliminar(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n accept: () => {\r\n this.setRespuesta().then(data => {});\r\n },\r\n reject: () => {\r\n }\r\n });\r\n }\r\n\r\n async setRespuesta(){\r\n if(this.validarEliminacion()){\r\n this.recursoPuntoDTO.fechaAdicionado = null;\r\n this.recursoPuntoDTO.fechaModificado = null;\r\n await this.generalService.delete(new GeneralModel('RecursoPuntoDTO',null, false,this.recursoPuntoDTO)).toPromise();\r\n await this.loadCruce();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.ocultar();\r\n return\r\n }else {\r\n this.notificacionesBusService.showWarning('Debe eliminar los cruces primero');\r\n }\r\n }\r\n \r\n validarEliminacion(){\r\n console.log(this.listaCruce.length)\r\n console.log(this.listaCruce.length <= 0)\r\n \r\n let validador = this.listaCruce.length <= 0;\r\n return validador;\r\n }\r\n\r\n async cargarRecursoPunto() {\r\n let verificar: RecursoPuntoModel = new RecursoPuntoModel();\r\n if (this.tipoRecurso == 'F') {\r\n verificar.fuente = this.llaveReporte;\r\n } else if (this.tipoRecurso == 'R') {\r\n verificar.reporteFuente = this.llaveReporte;\r\n }\r\n this.recursosValidar = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, verificar)).toPromise();\r\n\r\n }\r\n\r\n async cargarEntradas() {\r\n this.listaEntrada = await this.generalService.queryForList(new GeneralModel('ReporteEntradaDTO', null, false, {reporteFuente: this.llaveReporte})).toPromise();\r\n }\r\n\r\n async cargarCruce() {\r\n if (this.recursoPuntoDTO.llaveTabla == null) {\r\n return;\r\n }\r\n this.cruces = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', true, { recursoPunto: this.recursoPuntoDTO.llaveTabla })).toPromise();\r\n }\r\n\r\n async cargarAtributos(puntoProceso) {\r\n this.listadoAtributoPunto = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso }));\r\n this.listaAtributoPunto = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, { puntoProceso: puntoProceso })).toPromise();\r\n }\r\n\r\n async guardar() {\r\n this.clickGuardar = true;\r\n if (this.validar()) {\r\n this.recursoPuntoDTO.fechaAdicionado = this.recursoPuntoDTO.fechaAdicionado ? new Date(this.recursoPuntoDTO.fechaAdicionado) : null;\r\n this.recursoPuntoDTO.fechaModificado = this.recursoPuntoDTO.fechaModificado ? new Date(this.recursoPuntoDTO.fechaModificado) : null;\r\n if (this.nuevo) {\r\n if (this.tipoRecurso == 'F') {\r\n this.recursoPuntoDTO.fuente = this.llaveReporte;\r\n } else if (this.tipoRecurso == 'R') {\r\n this.recursoPuntoDTO.reporteFuente = this.llaveReporte;\r\n }\r\n this.recursoPuntoDTO.tipo = this.tipoRecurso;\r\n this.recursoPuntoDTO = await this.generalService.crearRegistro(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n await this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\r\n this.nuevo = false;\r\n this.clickGuardar = false;\r\n return null\r\n }\r\n if ((await this.generalService.update(new GeneralModel('RecursoPuntoDTO', null, false, this.recursoPuntoDTO)).toPromise()) <= 0) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n return null;\r\n }\r\n await this.cargarAtributos(this.recursoPuntoDTO.puntoProceso);\r\n await this.loadCruce()\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.clickGuardar = false;\r\n }\r\n return null;\r\n }\r\n\r\n nuevoCruce() {\r\n this.habilitaCampo = true;\r\n this.cruceRecursoPunto = new CruceRecursoPuntoModel();\r\n this.vistaVisualizarDetalle = 'nuevoCruce'\r\n }\r\n cancelarCruce() {\r\n this.vistaVisualizarDetalle = null;\r\n this.habilitaCampo = false;\r\n }\r\n\r\n async agregarCruce(cruce?, nuevo?) {\r\n this.clickGuardarCruce = true;\r\n if (nuevo) {\r\n if (!this.validarCruce(this.cruceRecursoPunto)) {\r\n this.notificacionBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n this.clickGuardarCruce = false;\r\n this.cruceRecursoPunto.recursoPunto = this.recursoPuntoDTO.llaveTabla;\r\n this.cruceRecursoPunto.llaveTabla = this.utilsService.generarLlave();\r\n await this.generalService.crearRegistro(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise();\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\r\n this.vistaVisualizarDetalle = null;\r\n } else {\r\n this.cruceRecursoPunto = cruce\r\n if (!this.validarCruce(this.cruceRecursoPunto)) {\r\n this.notificacionBusService.showError('Faltan campos obligatorios')\r\n return;\r\n }\r\n if ((await this.generalService.update(new GeneralModel('CruceRecursoPuntoDTO', null, false, this.cruceRecursoPunto)).toPromise()) <= 0) {\r\n this.notificacionBusService.showWarning(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\r\n }\r\n this.notificacionBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n }\r\n await this.cargarCruce();\r\n await this.loadCruce();\r\n this.habilitaCampo = false;\r\n }\r\n \r\n eliminarCruce(event, cruce){\r\n this.habilitaCampo = true;\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n accept: () => {\r\n this.setEliminarCruce(cruce).then(data => {});\r\n this.habilitaCampo = false;\r\n }\r\n });\r\n }\r\n\r\n iniciarEdicion() {\r\n this.habilitaCampo = true;\r\n }\r\n\r\n async cancelarEdicion() { \r\n await this.loadCruce();\r\n this.habilitaCampo = false;\r\n \r\n }\r\n\r\n async setEliminarCruce(cruce){\r\n if ((await this.generalService.delete(new GeneralModel('CruceRecursoPuntoDTO', null, false, cruce)).toPromise()) <= 0) {\r\n this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\r\n return\r\n }\r\n this.notificacionesBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\r\n await this.loadCruce();\r\n }\r\n\r\n validar() {\r\n let validar = true;\r\n if (this.recursosValidar == null || this.recursosValidar.length <= 0) {\r\n return validar;\r\n }\r\n this.recursosValidar.forEach(element => {\r\n if ((element.llaveTabla != this.recursoPuntoDTO.llaveTabla) && element.puntoProceso == this.recursoPuntoDTO.puntoProceso) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PUNTO_PROCESO_REPETIDO);\r\n validar = false\r\n }\r\n });\r\n validar = validar && this.utilsService.validarCampoObligatorio(this.recursoPuntoDTO.puntoProceso)\r\n return validar;\r\n }\r\n validarCruce(cruce: CruceRecursoPuntoModel) {\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(cruce.reporteEntrada)\r\n validador = validador && this.utilsService.validarCampoObligatorio(cruce.atributoPunto)\r\n if(this.tipoRecurso == null){\r\n this.notificacionBusService.showError('No se encuentra el recurso');\r\n validador = validador && false\r\n }\r\n this.cruces.forEach(async element => {\r\n if (this.tipoRecurso == 'F' && element.reporteEntrada == this.cruceRecursoPunto.reporteEntrada) {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\r\n validador = validador && false;\r\n } else {\r\n this.notificacionBusService.showInfo(this.generalPipe.MENSAJE_PARAMETRO_REPETIDO);\r\n validador = validador && false;\r\n }\r\n });\r\n return validador;\r\n }\r\n\r\n public ocultar() {\r\n this.vistaVisualizar = null;\r\n }\r\n\r\n\r\n}\r\n","<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\r\n<p-confirmPopup></p-confirmPopup>\r\n\r\n<div class=\"flex justify-content-between align-items-center mt-3 mb-3\">\r\n <h1 class=\"text-xl\">{{'punto' | translate }} {{'proceso' | translate }} </h1>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPuntoProceso()\"\r\n label=\"{{'link_nuevo' | translate}}\" *ngIf=\"vistaVisualizar !='detalle'\" >\r\n </button>\r\n <div class=\"flex justify-content-end mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\r\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'punto' | translate}} {{'proceso' | translate}}\" \r\n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\r\n </div>\r\n</div>\r\n\r\n<p-table [value]=\"listaRecursoPunto\" [scrollable]=\"true\" responsiveLayout=\"scroll\" selectionMode=\"single\" dataKey=\"puntoProceso\"\r\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" *ngIf=\"vistaVisualizar != 'detalle'\"\r\n [paginator]=\"paginator.totalRecords > paginator.rows\" [lazy]=\"true\" (onLazyLoad)=\"cargar($event)\">\r\n <ng-template pTemplate=\"header\">\r\n \r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'punto' | translate }} {{'proceso' | translate }} </th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-punto>\r\n <tr [pSelectableRow]=\"punto\">\r\n <td>{{punto.puntoProcesoDescripcion}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\r\n <p-tabView class=\"mb-0\">\r\n <p-tabPanel [header]=\"'basica' | translate\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-3\">\r\n\r\n <div class=\"field col-12 md:col-12\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaPuntosProceso\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"recursoPuntoDTO.puntoProceso\"\r\n [class]=\"!utilsService.validarCampoObligatorio(recursoPuntoDTO.puntoProceso) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" >\r\n </p-dropdown>\r\n <label htmlFor=\"puntoProceso\">{{'punto' | translate }} {{'proceso' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n\r\n <!--BOTONES-->\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}} \" label =\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\r\n (click)=\"guardar()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 mr-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!nuevo\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'cruce' | translate\" *ngIf=\"!nuevo\">\r\n <div class=\"flex justify-content-end align-items-center mb-2\">\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCruce()\" icon=\"pi pi-plus\" [disabled]=\"habilitaCampo\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table #tablaGeneral [value]=\"listaCruce\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\r\n [rows]=\"10\" [totalRecords]=\"listaCruce.length\"\r\n [paginator]=\"listaCruce.length > 10\" \r\n [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \r\n editMode=\"row\" dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"fondoTablaPincipal\">\r\n <th style=\"width: 45%;\">{{'entrada' | translate}}</th>\r\n <th style=\"width: 45%;\">{{'valor' | translate}}</th>\r\n <th style=\"width: 10%;\"> </th>\r\n </tr>\r\n <tr class=\"TablaNuevoRegistro\" *ngIf=\"vistaVisualizarDetalle === 'nuevoCruce'\">\r\n <td style=\"width: 45%;\">\r\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"llave\"\r\n [class]=\"!utilsService.validarCampoObligatorio(cruceRecursoPunto.reporteEntrada) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\r\n [autoDisplayFirst]=\"false \"optionLabel=\"descripcion\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [(ngModel)]=\"cruceRecursoPunto.reporteEntrada\"></p-dropdown>\r\n </td>\r\n <td style=\"width: 45%;\">\r\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\"\r\n [class]=\"!utilsService.validarCampoObligatorio(cruceRecursoPunto.atributoPunto) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [(ngModel)]=\"cruceRecursoPunto.atributoPunto\" ></p-dropdown>\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <div class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"agregarCruce(null,true)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"cancelarCruce()\" icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-cruce let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"cruce\" >\r\n <td style=\"width: 45%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"listaEntrada\" optionValue=\"llave\"\r\n [class]=\"!utilsService.validarCampoObligatorio(cruce.reporteEntrada) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\r\n [autoDisplayFirst]=\"false \"optionLabel=\"descripcion\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [(ngModel)]=\"cruce.reporteEntrada\"></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{cruce.descripcionEntrada}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 45%;\">\r\n <p-cellEditor>\r\n <ng-template pTemplate=\"input\">\r\n <p-dropdown [options]=\"listadoAtributoPunto\" optionValue=\"key\"\r\n [class]=\"!utilsService.validarCampoObligatorio(cruce.atributoPunto) && clickGuardarCruce ? 'ng-invalid ng-dirty' : ''\"\r\n [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\" [autoZIndex]=\"false\"\r\n [(ngModel)]=\"cruce.atributoPunto\" ></p-dropdown>\r\n </ng-template>\r\n <ng-template pTemplate=\"output\">\r\n {{cruce.atributoPuntoDescripcion}}\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n <td style=\"width: 10%;\">\r\n <div class=\"flex justify-content-end\">\r\n <!-- CHECK GUARDAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\r\n icon=\"pi pi-check\" (click)=\"agregarCruce(cruce, false)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- CANCELAR -->\r\n <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\r\n icon=\"pi pi-times\" (click)=\"cancelarEdicion()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- EDITAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\r\n icon=\"glyphicons glyphicons-pencil\" [disabled]=\"habilitaCampo\" (click)=\"iniciarEdicion()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <!-- ELIMINAR -->\r\n <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\r\n icon=\"pi pi-trash\" (click)=\"eliminarCruce($event,cruce)\" [disabled]=\"habilitaCampo\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'filtro' | translate\" *ngIf=\"!nuevo\">\r\n <div class=\"card\">\r\n <p-table [value]=\"listaAtributoPunto\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" >\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\r\n <th class=\"w-6rem\">{{'codigo' | translate}}</th> \r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr>\r\n <td class=\"w-6rem\">\r\n {{element.descripcion}}\r\n </td>\r\n <td class=\"w-6rem\">\r\n {{element.codigo}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12 mt-3\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-200\" rows=\"5\" cols=\"30\" pInputTextarea\r\n [(ngModel)]=\"recursoPuntoDTO.filtro\" autofocus [autoResize]=\"true\"> </textarea>\r\n <label class=\" w-full\" for=\"descripcion\">{{'filtro' | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"flex justify-content-end align-content-center mt-3\">\r\n <button pButton pRipple class=\"ml-2 p-button-raised\" (click)=\"guardar()\"\r\n icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" ></button>\r\n </div>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\r\nimport { ReporteFuentePipe } from '../../../pipes/reporte-fuente.pipe';\r\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { FuenteDatoModel } from '../../../../seguridad/modelos/FuenteDato';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { MenuService } from '../../../../core/servicios/menu.service';\r\nimport { CargarControlFuncionalidadService } from '../../../../core/servicios/cargar-control-funcionalidad.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DetalleEntradaReporteComponent } from '../detalle-entrada-reporte/detalle-entrada-reporte.component';\r\nimport { DetalleCampoReporteComponent } from '../detalle-campo-reporte/detalle-campo-reporte.component';\r\nimport { DetalleTipoReporteComponent } from '../detalle-tipo-reporte/detalle-tipo-reporte.component';\r\nimport { DetalleDistribucionReporteComponent } from '../detalle-distribucion-reporte/detalle-distribucion-reporte.component';\r\nimport { PopupReporteComponent } from '../../../popups/popup-reporte/popup-reporte.component';\r\nimport { DetallePuntoProcesoReporteComponent } from '../detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component';\r\nimport { InputHelperSeleccionPlantillaComponent } from '../../../../shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule, TranslateModule, InputTextModule, FormsModule, ButtonModule, ConfirmPopupModule, MenubarModule, DropdownModule, DetalleEntradaReporteComponent, DetalleCampoReporteComponent, DetalleTipoReporteComponent, DetalleDistribucionReporteComponent, PopupReporteComponent, DetallePuntoProcesoReporteComponent, InputHelperSeleccionPlantillaComponent, FloatLabelModule, InputTextareaModule ],\r\n templateUrl: './detalle-ejecucion-reporte.page.html',\r\n selector: 'app-detalle-ejecucion-reporte',\r\n styleUrls: ['./detalle-ejecucion-reporte.page.scss'],\r\n providers: [MessageService, ConfirmationService],\r\n})\r\nexport class DetalleEjecucionReportePage implements OnInit {\r\n public items: MenuItem[];\r\n public reporte: ReporteFuenteModel = new ReporteFuenteModel();\r\n public vistaVisualizar: string = null;\r\n public llaveTabla: string = null;\r\n\r\n //listas\r\n public listaTipo;\r\n public listaSiNo;\r\n public listaMomento;\r\n public listaTipoCifrado;\r\n\r\n public verTodos:boolean;\r\n public listaFuente : FuenteDatoModel[];\r\n public permiteModificarReporte: boolean;\r\n\r\n public mostrarPopupReporte:boolean =false;\r\n public operacion: string;\r\n\r\n @Output() public regresar = new EventEmitter();\r\n public clickGuardar: boolean = false;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private activeRoute: ActivatedRoute,\r\n private formBuilder: FormBuilder,\r\n private notificacionesBusService: ToastService,\r\n private generalService: GeneralService,\r\n private router: Router,\r\n public utilsService: UtilsService,\r\n private authService: AuthService,\r\n private reporteFuentePipe: ReporteFuentePipe,\r\n public controlFuncionService: CargarControlFuncionalidadService,\r\n private confirmationService: ConfirmationService,\r\n private ejecucionReporteService: EjecucionReporteService,\r\n private generalPipe: GeneralPipe,\r\n private menuService: MenuService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.llaveTabla = this.activeRoute.snapshot.paramMap.get('llaveTabla');\r\n this.vistaVisualizar = 'reporte'\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\r\n this.reporte = new ReporteFuenteModel();\r\n if (this.llaveTabla){\r\n this.ejecucionReporteService.getDatosEjecucionReporte({llave: this.llaveTabla}).subscribe(data => {\r\n this.reporte = data.reporte;\r\n delete this.reporte['alias']\r\n this.listaFuente = data.listaFuente\r\n this.verTodos = data.permisoVerTodos;\r\n this.cargarMenu();\r\n })\r\n } else {\r\n this.cargarMenu();\r\n this.reporte = new ReporteFuenteModel();\r\n }\r\n this.cargarListas();\r\n\r\n }\r\n\r\n nuevoReporte() {\r\n if(this.isPermisoVerTodos()) {\r\n this.listaTipo =this.reporteFuentePipe.LISTA_TIPO;\r\n }else {\r\n this.listaTipo =this.reporteFuentePipe.LISTA_TIPO_SIN_PERMISO;\r\n }\r\n this.operacion = \"N\"; //nuevo reporte\r\n this.reporte = new ReporteFuenteModel();\r\n //this.reporte.origenFuente = this.reporteFuentePipe.FUENTE;\r\n this.reporte.unicoArchivo = this.generalPipe.SI;\r\n this.reporte.dobleLinea = this.generalPipe.NO;\r\n var fuente = new FuenteDatoModel();\r\n fuente.origen = 'F';\r\n if (!this.isPermisoVerTodos()){\r\n fuente.rol = this.authService.getTokenKey('aliasRol');\r\n fuente.login = this.authService.getTokenKey('usuario')\r\n }\r\n this.generalService.queryForList(new GeneralModel('FuenteDatoDTO', null, false, fuente)).subscribe(data => {\r\n this.listaFuente = data;\r\n })\r\n \r\n this.cargarListas();\r\n this.cargarMenu();\r\n //cambiarValorTipo(actual.getOrigenFuente());\r\n }\r\n\r\n traerReporte(reporteBase: ReporteFuenteModel){\r\n this.ejecucionReporteService.getDatosEjecucionReporte({llave: reporteBase.llave}).subscribe(data => {\r\n this.reporte = data.reporte;\r\n delete this.reporte['alias']\r\n this.listaFuente = data.listaFuente\r\n this.verTodos = data.permisoVerTodos;\r\n this.permiteModificarReporte = data.permiteModificarReporte;\r\n this.cargarListas();\r\n this.cargarMenu();\r\n this.operacion = 'M'\r\n })\r\n }\r\n\r\n private cargarMenu() {\r\n if (this.reporte.llave != null) {\r\n this.items = [\r\n {\r\n label: this.translateService.instant('reporte'),\r\n icon: 'glyphicons glyphicons-plus-sign',\r\n command: (event) => {\r\n this.vistaVisualizar = 'reporte';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\r\n },\r\n },\r\n {\r\n label: this.translateService.instant('entrada'),\r\n icon: 'glyphicons glyphicons-file-minus',\r\n command: (event) => {\r\n this.vistaVisualizar = 'entrada';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('entrada')}]);\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n {\r\n label: this.translateService.instant('campo'),\r\n icon: 'glyphicons glyphicons-log-book',\r\n command: (event) => {\r\n this.vistaVisualizar = 'campo';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('campo')}]);\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n {\r\n label: this.translateService.instant('tipo'),\r\n icon: 'glyphicons glyphicons-notes-2',\r\n command: (event) => {\r\n this.vistaVisualizar = 'tipo';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('tipo')}]);\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n {\r\n label: this.translateService.instant('distribucion'),\r\n icon: 'glyphicons glyphicons-transfer',\r\n command: (event) => {\r\n this.vistaVisualizar = 'distribucion';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('distribucion')}]);\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n {\r\n label: this.translateService.instant('puntoproceso'),\r\n icon: 'glyphicons glyphicons-server-new',\r\n command: (event) => {\r\n this.vistaVisualizar = 'puntoproceso';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('puntoproceso')}]);\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n {\r\n label: this.translateService.instant('ejecutar'),\r\n icon: 'glyphicons glyphicons-disk-export',\r\n command: (event) => {\r\n this.mostrarPopupReporte = true;\r\n },\r\n visible: this.reporte.llave != null,\r\n },\r\n ]\r\n } else {\r\n this.items = [\r\n {\r\n label: this.translateService.instant('reporte'),\r\n icon: 'glyphicons glyphicons-plus-sign',\r\n command: (event) => {\r\n this.vistaVisualizar = 'reporte';\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte', command: (event)=>{this.regresarAction()}}, \r\n {label: this.translateService.instant('mantenimiento') + ' ' + this.translateService.instant('reporte')}]);\r\n },\r\n }\r\n ]\r\n }\r\n \r\n }\r\n\r\n public cargarListas(){\r\n this.listaTipo = this.reporteFuentePipe.LISTA_TIPO;\r\n this.listaMomento = this.reporteFuentePipe.LISTA_MOMENTO;\r\n this.listaSiNo = this.generalPipe.LISTA_SINO;\r\n this.generalService.queryForList(new GeneralModel('EncripcionArchivoDTO', null, false, {})).subscribe(data => {\r\n this.listaTipoCifrado = data;\r\n })\r\n }\r\n\r\n public actualizar(){\r\n this.clickGuardar = true;\r\n if (!this.validar()){\r\n this.notificacionesBusService.showError('Faltan campos obligatorios');\r\n return;\r\n }\r\n if (this.utilsService.isNotBlank(this.reporte.llave)){\r\n this.ejecucionReporteService.guardarReporte(this.reporte).subscribe(data => {\r\n this.reporte = data;\r\n this.clickGuardar = false;\r\n this.cargarMenu()\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n });\r\n /* this.generalService.update(new GeneralModel('ReporteFuenteDTO', null, false, this.reporte)).subscribe(data => {\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\r\n this.clickGuardar = false;\r\n delete this.reporte['alias']\r\n }/;\r\n */\r\n } else {\r\n this.ejecucionReporteService.guardarReporte(this.reporte).subscribe(data => {\r\n this.reporte = data;\r\n this.clickGuardar = false;\r\n this.cargarMenu()\r\n this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\r\n });\r\n \r\n }\r\n \r\n }\r\n\r\n validar(){\r\n var validador: boolean = true;\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.descripcion);\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.reporteExterno);\r\n if (this.isFuente()){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.fuenteDato);\r\n }\r\n if (this.isSql()){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.query);\r\n let mensaje = this.utilsService.validarTextoSQL(this.reporte.query, false, true, 0, true)\r\n if (mensaje){\r\n validador = validador && false;\r\n this.notificacionesBusService.showWarning(mensaje);\r\n }\r\n }\r\n if (this.isFijo()){\r\n validador = validador && this.utilsService.validarCampoObligatorio(this.reporte.jasperFijo);\r\n }\r\n return validador;\r\n }\r\n\r\n setJasperFijo(event){\r\n this.reporte.jasperFijo = event.data\r\n }\r\n\r\n regresarAction(){\r\n this.regresar.emit();\r\n }\r\n\r\n regresarPopupReporte(event){\r\n this.mostrarPopupReporte = false;\r\n }\r\n\r\n eliminar(event){\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\r\n acceptLabel: this.generalPipe.SI_DESC,\r\n accept: () => {\r\n this.ejecucionReporteService.eliminarReporte(this.reporte).subscribe(data => {\r\n this.notificacionesBusService.showInfo('Se ha eliminado el reporte')\r\n this.regresarAction();\r\n })\r\n },\r\n reject: () => {\r\n }\r\n });\r\n }\r\n\r\n public isFijo():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FIJO);\r\n }\r\n\r\n public isSql():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.SQL);\r\n }\r\n\r\n public isFuente():boolean{\r\n return this.filtroOrigenFuente(this.reporteFuentePipe.FUENTE);\r\n }\r\n\r\n public filtroOrigenFuente(tipo:string):boolean{\r\n return this.reporte.origenFuente == tipo;\r\n }\r\n \r\n\tpublic isPermisoVerTodos() {\r\n\t\treturn this.controlFuncionService.getControlFuncionalidad(\"reporte:vertodos\");\r\n\t}\r\n\t\r\n\tpublic isPermisoCrear() {\r\n\t\treturn this.controlFuncionService.getControlFuncionalidad(\"reporte:crear\");\r\n\t}\r\n\r\n public isModificarReporte(){\r\n return this.isPermisoVerTodos() || this.permiteModificarReporte || (this.isPermisoCrear() && this.operacion == 'N')\r\n }\r\n}\r\n","<div class=\"flex justify-content-between align-items-center ml-2 mt-2 mb-2\">\r\n <h1 class=\"mb-1\">Reportes</h1>\r\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\r\n (click)=\"regresarAction()\" label=\"{{'link_regresar' | translate}}\" >\r\n </button>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>\r\n <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\r\n <div class=\"card mt-3\" *ngIf=\"vistaVisualizar != 'reporte'\">\r\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'informacion' | translate}} {{'reporte' | translate}}</h5>\r\n <div class=\"Inputgroup p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <p-floatLabel>\r\n <input pInputText [disabled]=\"true\" [(ngModel)]=\"reporte.descripcion\">\r\n <label >{{('descripcion') | translate}}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 mt-2\" *ngIf=\"vistaVisualizar == 'reporte'\">\r\n <div id=\"reportesListado\">\r\n <div class=\"card col-md-12\">\r\n <div class=\"Detallereporte mt-4\">\r\n <div class=\"p-fluid p-formgrid grid\">\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText id=\"descripcion\" type=\"text\" [(ngModel)]=\"reporte.descripcion\" \r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.descripcion) && clickGuardar\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.descripcion) && clickGuardar\" />\r\n <label>{{'descripcion' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText id=\"titulo\" type=\"text\" [(ngModel)]=\"reporte.titulo\" />\r\n <label>{{'titulo' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-6\">\r\n <p-floatLabel>\r\n <input pInputText id=\"procedimiento\" type=\"text\" [(ngModel)]=\"reporte.procedimiento\" [disabled]=\"!isModificarReporte()\" />\r\n <label>{{'procedimiento' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div [ngClass]=\"isFuente() ? 'field col-12 md:col-6' : 'field col-12 md:col-2' \">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" id=\"origenFuente\" [disabled]=\"reporte.llave != null || !controlFuncionService.getControlFuncionalidad('reporte:tipo')\"\r\n [(ngModel)]=\"reporte.origenFuente\" optionLabel=\"nombre\" optionValue=\"codigo\" ></p-dropdown>\r\n <label>{{'tipo' | translate }}*</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isFuente()\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" id=\"fuenteDato\" [disabled]=\"!isModificarReporte()\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.fuenteDato) && clickGuardar\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.fuenteDato) && clickGuardar\" \r\n [(ngModel)]=\"reporte.fuenteDato\" optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\r\n <label>{{'fuente' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-4\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaMomento\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"reporte.momento\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\" [showClear]=\"true\">\r\n </p-dropdown>\r\n <label>{{'momento' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-2\">\r\n <p-floatLabel>\r\n <p-dropdown [options]=\"listaSiNo\" id=\"reporteExterno\" [(ngModel)]=\"reporte.reporteExterno\" [autoDisplayFirst]=\"false\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.reporteExterno) && clickGuardar\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.reporteExterno) && clickGuardar\"\r\n optionLabel=\"nombre\" optionValue=\"codigo\" [disabled]=\"!isModificarReporte()\" >\r\n </p-dropdown>\r\n <label>{{'reporte' | translate }} {{'externo' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-12 md:col-4\" *ngIf=\"isFijo()\">\r\n <app-input-helper-seleccion-plantilla [readonly]=\"false\" [showDialog]=\"false\"\r\n [label]=\"reporte.jasperFijo ? reporte.jasperFijo: ''\" [mostrarX]=\"true\"\r\n [extensiones]=\"'jrxml'\" [mostraroblicargo]=\"!(!utilsService.validarCampoObligatorio(reporte.jasperFijo) && clickGuardar)\" [labelrar]=\"'jasper' | translate\"\r\n (onSelected)=\"setJasperFijo($event)\"></app-input-helper-seleccion-plantilla>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isFijo()\">\r\n <p-floatLabel> \r\n <p-dropdown [options]=\"listaTipoCifrado\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\r\n [(ngModel)]=\"reporte.cifradoJasperFijo\" optionLabel=\"nombre\" optionValue=\"llaveTabla\"></p-dropdown>\r\n <label>{{'tipocifrado' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12\" *ngIf=\"isSql() || isFijo()\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\r\n [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(reporte.query) && clickGuardar && isSql()\"\r\n [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(reporte.query) && clickGuardar && isSql()\"\r\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.query\"></textarea>\r\n <label >{{'sql' | translate }} *</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-6 md:col-12\" *ngIf=\"isFuente()\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\r\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.whereSql\"></textarea>\r\n <label>{{'where' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n <div class=\"field col-6 md:col-12\" *ngIf=\"isFuente()\">\r\n <p-floatLabel>\r\n <textarea class=\"w-full min-h-150 max-h-300\" rows=\"5\"\r\n cols=\"30\" pInputTextarea [(ngModel)]=\"reporte.whereSqlReporte\"></textarea>\r\n <label>{{'where' | translate }} {{'reporte' | translate }}</label>\r\n </p-floatLabel>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end mb-3\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"isModificarReporte()\"\r\n icon=\"glyphicons {{reporte.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" label=\"{{reporte.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\r\n (click)=\"actualizar()\">\r\n </button>\r\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporte.llave != null && isModificarReporte()\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"vistaVisualizar == 'entrada'\"> \r\n <detalle-entrada-reporte [modificarReporte]=\"isModificarReporte()\" [llaveReporte]=\"reporte.llave\"></detalle-entrada-reporte>\r\n </div>\r\n\r\n <div *ngIf=\"vistaVisualizar == 'campo'\">\r\n <detalle-campo-reporte [reporteFuente]=\"reporte\"> </detalle-campo-reporte>\r\n </div>\r\n\r\n <div *ngIf=\"vistaVisualizar == 'tipo'\">\r\n <detalle-tipo-reporte [listaFuentes]=\"listaFuente\" [llaveReporte]=\"reporte.llave\"></detalle-tipo-reporte>\r\n </div>\r\n\r\n <div *ngIf=\"vistaVisualizar == 'distribucion'\">\r\n <detalle-distribucion-reporte [llaveReporte]=\"reporte.llave\"></detalle-distribucion-reporte>\r\n </div>\r\n\r\n <div *ngIf=\"vistaVisualizar == 'puntoproceso'\">\r\n <detalle-punto-proceso-reporte [llaveReporte]=\"reporte.llave\" [tipoRecurso]=\"'R'\"></detalle-punto-proceso-reporte>\r\n </div>\r\n\r\n <app-popup-reporte [mostrar]=\"mostrarPopupReporte\" [reporte]=\"reporte\" [aplicacion]=\"\"\r\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { DetalleEjecucionReportePage } from '../detalle-ejecucion-reporte/detalle-ejecucion-reporte.page';\r\nimport { TableColumn } from '../../../../core/modelos/table-column.model';\r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { MenuService } from '../../../../core/servicios/menu.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { TablaGeneralComponent } from '../../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n@Component({\r\n imports: [TranslateModule, CommonModule, TablaGeneralComponent, FiltroGeneralComponent, ReactiveFormsModule, ButtonModule, DetalleEjecucionReportePage, InputTextModule],\r\n standalone: true,\r\n templateUrl: './listado-ejecucion-reporte.page.html',\r\n styleUrls: ['./listado-ejecucion-reporte.page.scss']\r\n})\r\nexport class ListadoEjecucionReportePage implements OnInit {\r\n public listaReporte : ReporteFuenteModel[] = [];\r\n public reporte: ReporteFuenteModel;\r\n public columns: TableColumn[];\r\n public paginator = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n filters: { field: string; header: string; matchMode: string; }[];\r\n public verDetalle: boolean = false;\r\n @ViewChild('detalle') detalle: DetalleEjecucionReportePage;\r\n\r\n constructor(private translateService: TranslateService,\r\n private formBuilder: FormBuilder,\r\n private menuService: MenuService,\r\n private generalService: GeneralService,\r\n private router: Router, public utilsService: UtilsService){ \r\n }\r\n\r\n ngOnInit(){\r\n this.columns = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('reporte'),\r\n// width: 100,\r\n },\r\n ]\r\n this.filters = [\r\n {\r\n field: 'filtro',\r\n header: this.translateService.instant('filtro'),\r\n matchMode: 'contains'\r\n }];\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte'}]);\r\n }\r\n\r\n public cargarListaReporte(event){\r\n let objetoFiltro : GeneralModel = new GeneralModel('ReporteFuenteDTO', null, false, {\r\n descripcion: event.filters.filtro?.value ? `%${event.filters.filtro?.value}%` : null,\r\n paginacionRegistroInicial: event.first,\r\n paginacionRegistroFinal: event.rows,\r\n })\r\n this.generalService.queryForList(objetoFiltro).subscribe(data => {\r\n this.listaReporte = data;\r\n this.generalService.cantidadRegistros(objetoFiltro).subscribe(data => {\r\n this.paginator.totalRecords = data;\r\n })\r\n });\r\n }\r\n\r\n public nuevo(){\r\n this.verDetalle = true;\r\n this.sleep(1000).then(data => {\r\n this.detalle.nuevoReporte();\r\n })\r\n }\r\n\r\n public verAction(event){\r\n this.verDetalle = true;\r\n this.sleep(1000).then(data => {\r\n this.detalle.traerReporte(event);\r\n })\r\n }\r\n\r\n regresarAction(){\r\n this.verDetalle = false;\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte'}]);\r\n }\r\n\r\n sleep(ms: number): Promise<void> {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n }\r\n}","<div *ngIf=\"!verDetalle\">\r\n<h1>Reportes</h1>\r\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\r\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"field\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" formControlName=\"filtro\" autocomplete=\"off\" />\r\n <label>{{'filtro' | translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevo()\"\r\n label=\"{{'link_nuevo' | translate}}\" >\r\n </button>\r\n</div>\r\n<app-tabla-general\r\n #tablaGeneral\r\n dataKey=\"llaveTabla\"\r\n [columns]=\"columns\"\r\n [value]=\"listaReporte\"\r\n [rows]=\"paginator.rows\"\r\n \r\n [totalRecords]=\"paginator.totalRecords\"\r\n (onLoad)=\"cargarListaReporte($event)\"\r\n (onRowSelect)=\"verAction($event)\"\r\n></app-tabla-general>\r\n</div>\r\n\r\n<app-detalle-ejecucion-reporte #detalle (regresar)=\"regresarAction()\" *ngIf=\"verDetalle\"></app-detalle-ejecucion-reporte>","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { GeneralService } from '../../../../shared/servicios/general.service';\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { EjecucionReporteService } from '../../../services/ejecucionreporte.service';\r\nimport { GeneralPipe } from '../../../pipes/general.pipe';\r\nimport { MenuService } from '../../../../core/servicios/menu.service'\r\nimport { ReporteFuenteModel } from '../../../../seguridad/modelos/ReporteFuenteModel'; \r\nimport { GeneralModel } from '../../../../seguridad/modelos/GeneralModel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { PopupReporteComponent } from '../../../popups/popup-reporte/popup-reporte.component'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FiltroGeneralComponent } from '../../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { Ripple } from 'primeng/ripple';\r\n\r\n@Component({\r\n selector: 'app-listado-ejecucion-reporte-externo',\r\n templateUrl: './listado-ejecucion-reporte-externo.component.html',\r\n styleUrls: ['./listado-ejecucion-reporte-externo.component.scss'],\r\n imports: [TranslateModule, \r\n TableModule, \r\n FormsModule,\r\n ReactiveFormsModule, \r\n PopupReporteComponent, \r\n FiltroGeneralComponent,\r\n InputTextModule,\r\n Ripple\r\n ],\r\n standalone: true,\r\n})\r\nexport class ListadoEjecucionReporteExternoComponent implements OnInit {\r\n\r\n filtro: ReporteFuenteModel;\r\n listaReporteExterno: ReporteFuenteModel[];\r\n reporteSeleccionado: ReporteFuenteModel;\r\n filters = [];\r\n isPopupReporte: boolean = false;\r\n reporte: ReporteFuenteModel;\r\n\r\n constructor(private authService: AuthService, private generalPipe: GeneralPipe, private generalService: GeneralService, private translateService: TranslateService,\r\n private ejecucionReporteService: EjecucionReporteService, private menuService: MenuService, private utilsService: UtilsService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.reporte = new ReporteFuenteModel();\r\n this.filtro = new ReporteFuenteModel();\r\n this.reporteSeleccionado = null;\r\n this.listaReporteExterno = [];\r\n this.cargarMigadePan();\r\n this.cargarFiltro();\r\n let event = {}\r\n this.cargarListaReporteExterno(event);\r\n }\r\n\r\n cargarMigadePan() {\r\n this.menuService.setBreadcrumb([{ label: 'Listado Ejecución Reporte Externo' }]);\r\n }\r\n\r\n cargarListaFiltros(event) {\r\n this.cargarListaReporteExterno(event);\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n\r\n cargarFiltro() {\r\n this.filters = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n },\r\n ];\r\n }\r\n\r\n async cargarListaReporteExterno(event) {\r\n\r\n this.filtro.descripcion = event['descripcion'] ? '%' + event['descripcion']['value'] + '%' : null;\r\n\r\n this.filtro.reporteExterno = this.generalPipe.SI;\r\n this.filtro.rol = this.authService.getTokenKey('aliasRol');\r\n this.filtro.login = this.authService.getTokenKey('usuario');\r\n\r\n let objetoFiltro: GeneralModel = new GeneralModel('ReporteFuenteDTO', null, false, this.filtro);\r\n\r\n this.listaReporteExterno = await this.generalService.queryForList(objetoFiltro).toPromise();\r\n await this.utilsService.sleep(500)\r\n this.utilsService.resizeWindowIFrame();\r\n }\r\n\r\n async verAction(event) {\r\n \r\n if (event.data.llave){\r\n let data = await this.ejecucionReporteService.getDatosEjecucionReporte({llave: event.data.llave}).toPromise();\r\n this.reporte = data.reporte;\r\n this.isPopupReporte = true;\r\n this.utilsService.resizeWindowIFrame();\r\n } else {\r\n this.reporte = new ReporteFuenteModel();\r\n }\r\n this.utilsService.resizeWindowIFrame();\r\n\r\n }\r\n\r\n regresarPopupReporte(event){\r\n this.reporteSeleccionado = null;\r\n this.isPopupReporte = false;\r\n this.reporte = new ReporteFuenteModel();\r\n }\r\n\r\n}\r\n","<div id=\"id_listado_ejecucion_reporte_externo\">\r\n\r\n <h1>{{'reporte' | translate}}</h1>\r\n\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n\r\n <!-- Filtro-->\r\n <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"flex mt-3\">\r\n <span class=\"p-float-label\">\r\n <input pInputText id=\"id_descripcion\" formControlName=\"descripcion\"\r\n autocomplete=\"off\" />\r\n <label for=\"id_responsable\">{{'descripcion' | translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n\r\n </div>\r\n\r\n <p-table #tablaGeneral id=\"tabla_lista_reporte_externo\" [value]=\"listaReporteExterno\" responsiveLayout=\"scroll\"\r\n [rows]=\"10\" [paginator]=\"listaReporteExterno.length > 10\" [totalRecords]=\"listaReporteExterno.length\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\r\n selectionMode=\"single\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction($event)\"\r\n [(selection)]=\"reporteSeleccionado\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'reporte' | translate}}{{'s' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-item>\r\n <tr [pSelectableRow]=\"item\">\r\n <td>{{item.descripcion}}</td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"1\">\r\n {{'mensajetablavacia' |translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n</div>\r\n\r\n<app-popup-reporte [mostrar]=\"isPopupReporte\" [reporte]=\"reporte\"\r\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Type } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\n\r\nexport class CampoFormularioNuevoModel {\r\n\r\n\ttipo:string;\r\n\tdescripcion:string;\r\n\tvalorNuevo:any;\r\n\tobjeto:any;\r\n\tlongitud:number;\r\n\tcampo:string;\r\n\tobligatorio:boolean;\r\n\tlista:any[];\r\n\tlistaRespuesta:any[];\r\n\tpopup:string;\r\n\ttextoPopup:string;\r\n\tvalorAntiguo:any;\r\n\torden:number;\r\n\teditable:boolean;\r\n\tmensaje:string;\r\n\tmostrar:boolean;\r\n\t//formulario:IFormularioNuevo;\r\n\tdecimales:number;\r\n\tayuda:string;\r\n\tcaracteristica:boolean;\r\n\tcampoTabla:string;\r\n\tresaltado:boolean;\r\n\tcampoReferencia:string;\r\n\ttituloCampo:string;\r\n\tpopupComponent: Type<any>;\r\n\tpropiedadesPopupComponent: Partial<any>\r\n\tlistaPopups: any[]\r\n\r\n\t//campos creados por primeng\r\n\tlistaAutocompleteFiltrada: SelectItem[];\r\n\r\n\tconstructor(tipo: string, descripcion: string, longitud: number, decimales: number, campo: string, obligatorio: boolean,\r\n\t\tlista: any[], popup: string, editable: boolean, orden: number, mostrar: boolean, caracteristica: boolean, objeto: any) {\r\n\t\tthis.tipo = tipo;\r\n\t\tthis.descripcion = descripcion;\r\n\t\tthis.longitud = longitud;\r\n\t\tthis.decimales = decimales;\r\n\t\tthis.campo = campo;\r\n\t\tthis.obligatorio = obligatorio;\r\n\t\tthis.lista = lista;\r\n\t\tthis.popup = popup;\r\n\t\tthis.editable= editable;\r\n\t\tthis.objeto= objeto;\r\n\t\tthis.orden=orden;\r\n\t\tthis.mostrar=mostrar;\r\n\t\tthis.caracteristica = caracteristica;\r\n\t}\r\n\r\n\tfiltrarAutocomplete(event) {\r\n\t\tlet filtered : any[] = [];\r\n let query = event.query;\r\n for(let i = 0; i < this.lista.length; i++) {\r\n let objeto = this.lista[i];\r\n\t\t\tconsole.log(objeto)\r\n if (objeto.label.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n filtered.push(objeto);\r\n }\r\n }\r\n\r\n this.listaAutocompleteFiltrada = filtered;\r\n }\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteModel';\r\nimport { PopupReporteComponent } from '../../popups/popup-reporte/popup-reporte.component'\r\nimport { RecursoPuntoModel } from '../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { ReporteEntradaModel } from '../../../seguridad/modelos/ReporteEntradaModel';\r\nimport { CruceRecursoPuntoModel } from '../../../seguridad/modelos/CruceRecursoPuntoModel';\r\nimport { FuenteGeneralModel } from '../../../seguridad/modelos/FuenteGeneralModel';\r\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\r\nimport { ParametrosNavegacionService } from '../../../shared/servicios/parametros-navegacion.service';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { EjecucionReporteService } from '../../../webcommon/services/ejecucionreporte.service';\r\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component'\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { TableModule } from 'primeng/table';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n@Component({\r\n selector: 'app-popup-punto-proceso',\r\n imports: [TranslateModule, CommonModule, DialogModule, TableModule, ReactiveFormsModule, PopupReporteComponent, FiltroGeneralComponent, InputTextModule],\r\n standalone: true,\r\n templateUrl: './popup-punto-proceso.component.html',\r\n styleUrls: ['./popup-punto-proceso.component.scss']\r\n})\r\nexport class PopupPuntoProcesoComponent implements OnInit {\r\n\r\n public reportesPunto: RecursoPuntoModel[] = [];\r\n public fuentesPunto: RecursoPuntoModel[] = [];\r\n public tipo: string;\r\n\tpublic parametrosReporte: any[];\r\n\tpublic paginador: RecursoPuntoModel[] = [];\r\n\tpublic reportes: RecursoPuntoModel[];\r\n\tpublic fuentes: RecursoPuntoModel[];\r\n\tpublic recurso: RecursoPuntoModel;\r\n\tpublic reporte: ReporteFuenteModel;\r\n\r\n public mostrarPopup: boolean;\r\n public mostrarPopupReporte: boolean;\r\n @ViewChild('popupReporte') popupReporte: PopupReporteComponent;\r\n @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\r\n \r\n public componente: any;\r\n public filters = [];\r\n\r\n constructor(private generalService: GeneralService,\r\n private utilsService: UtilsService,\r\n private ejecucionReporteService: EjecucionReporteService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private parametrosService: ParametrosNavegacionService,\r\n private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.filters=[\r\n {\r\n field:'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }]\r\n }\r\n\r\n async mostrar(reportesPunto: RecursoPuntoModel[], tipo: string, componente: any) {\r\n\t\t\tthis.componente = componente;\r\n this.reportesPunto = reportesPunto;\r\n\t\t\tthis.tipo = tipo;\r\n\t\t\tlet reportesTmp: RecursoPuntoModel[] = this.obtenerReportes();\r\n\t\t\tif (this.reportesPunto != null && this.reportesPunto.length > 0) {\r\n\t\t\t\treportesTmp.forEach(reporte => {\r\n\t\t\t\t\tif(reporte.filtro==null||this.utilsService.isBlank(reporte.filtro)){\r\n\t\t\t\t\t\tthis.reportes.push(reporte);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tlet mostrarReporte=this.validarReporte(reporte.filtro);\r\n\t\t\t\t\t\tif(mostrarReporte){\r\n\t\t\t\t\t\t\tthis.reportes.push(reporte);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n this.filtroGeneral.limpiarFiltros();\r\n\t\t\tthis.mostrarPopup = true;\r\n\t}\r\n\r\n async mostrarFuente(fuentesPunto: RecursoPuntoModel[], tipo: string, componente: any) {\r\n this.componente = componente;\r\n this.fuentesPunto = fuentesPunto;\r\n this.tipo = tipo;\r\n let fuentesTmp: RecursoPuntoModel[] = this.obtenerFuentes();\r\n if (this.fuentesPunto != null && this.fuentesPunto.length > 0) {\r\n fuentesTmp.forEach(fuente => {\r\n if(fuente.filtro==null||this.utilsService.isBlank(fuente.filtro)){\r\n this.fuentes.push(fuente);\r\n }else{\r\n let mostrarFuente=this.validarReporte(fuente.filtro);\r\n if(mostrarFuente){\r\n this.fuentes.push(fuente);\r\n }\r\n }\r\n })\r\n }\r\n this.filtroGeneral.limpiarFiltros();\r\n this.mostrarPopup = true;\r\n}\r\n\r\n cargarPaginador(event) {\r\n let reportesTmp2: RecursoPuntoModel[] = this.obtenerReportes();\r\n this.reportes = [];\r\n let parametroBusqueda = event['descripcion'] ? event['descripcion']['value'] : null;\r\n reportesTmp2.forEach(recurso => {\r\n //this.reportes.push(recurso);\r\n if(!this.utilsService.isBlank(parametroBusqueda)) { \r\n if (recurso.reporteFuenteDescripcion.toUpperCase().includes(parametroBusqueda.toUpperCase().replace(' ', ''))) {\r\n this.reportes.push(recurso);\r\n }\r\n } else {\r\n this.reportes.push(recurso);\r\n }\r\n })\r\n\r\n\t\t\tthis.paginador = this.reportes\r\n }\r\n\r\n cargarPaginadorFuente(event) {\r\n let fuentesTmp2: RecursoPuntoModel[] = this.obtenerFuentes();\r\n this.fuentes = [];\r\n let parametroBusqueda = event['descripcion'] ? event['descripcion']['value'] : null;\r\n fuentesTmp2.forEach(recurso => {\r\n //this.fuentes.push(recurso);\r\n if(!this.utilsService.isBlank(parametroBusqueda)) { \r\n if (recurso.fuenteDescripcion.toUpperCase().includes(parametroBusqueda.toUpperCase().replace(' ', ''))) {\r\n this.fuentes.push(recurso);\r\n }\r\n } else {\r\n this.fuentes.push(recurso);\r\n }\r\n })\r\n\r\n\t\t\tthis.paginador = this.fuentes\r\n }\r\n\t\r\n\t/**\r\n\t * Indica si un reporte debe presentarse o no en el punto proceso \r\n\t * @param fc Contexto d\te JSF\r\n\t * @param filtro Filtro que indica si el reporte debe visualizarse\r\n\t * o no\r\n\t * @return Si el reporte cumple con la decision se retorna true,\r\n\t * de lo contrario false\r\n\t */\r\n\tprivate validarReporte(filtro: string) {\r\n //pte definir filtro con angular\r\n\t\treturn true;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Obtiene los reportes que se deben visualizar por el usuario \r\n\t * @return Reportes a presentar al usuario\r\n\t */\r\n\tprivate obtenerReportes(){\r\n\t\tlet reportes: RecursoPuntoModel[] = [];\r\n\t\tif (this.reportesPunto != null && this.reportesPunto.length > 0) {\r\n\t\t\tthis.reportesPunto.forEach(reporte => {\r\n\t\t\t\tif(reporte.filtro==null||this.utilsService.isBlank(reporte.filtro)){\r\n\t\t\t\t\treportes.push(reporte);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tlet mostrarReporte=this.validarReporte(reporte.filtro);\r\n\t\t\t\t\tif(mostrarReporte){\r\n\t\t\t\t\t\treportes.push(reporte);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tthis.reportes = this.ordenarSelectItemsAlfabeticamente(reportes);\r\n\t\treturn reportes;\r\n\t}\r\n\r\n private obtenerFuentes(){\r\n let fuentes: RecursoPuntoModel[] = [];\r\n\t\tif (this.fuentesPunto != null && this.fuentesPunto.length > 0) {\r\n\t\t\tthis.fuentesPunto.forEach(fuente => {\r\n\t\t\t\tif(fuente.filtro==null||this.utilsService.isBlank(fuente.filtro)){\r\n\t\t\t\t\tfuentes.push(fuente);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tlet mostrarFuente=this.validarReporte(fuente.filtro);\r\n\t\t\t\t\tif(mostrarFuente){\r\n\t\t\t\t\t\tfuentes.push(fuente);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tthis.fuentes = this.ordenarSelectItemsAlfabeticamente(fuentes);\r\n\t\treturn fuentes;\r\n\t}\r\n\r\n ordenarSelectItemsAlfabeticamente(reportes: RecursoPuntoModel[]): any[] {\r\n reportes.sort((a, b) => {\r\n const nombreA = a.tipo == 'R' ? a.reporteFuenteDescripcion.toLowerCase() : a.fuenteDescripcion.toLowerCase();\r\n const nombreB = b.tipo == 'R' ? b.reporteFuenteDescripcion.toLowerCase() : b.fuenteDescripcion.toLowerCase();\r\n\r\n if (nombreA < nombreB) {\r\n return -1;\r\n }\r\n if (nombreA > nombreB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n return reportes;\r\n }\r\n\t\t\r\n\tpublic async seleccionarRecurso(evento) {\r\n this.recurso = evento.data;\r\n if (this.recurso.tipo == 'R') {\r\n this.reporte = new ReporteFuenteModel();\r\n this.reporte.llave = this.recurso.reporteFuente;\r\n this.reporte = await this.generalService.queryForObject(new GeneralModel('ReporteFuenteDTO', null, false, this.reporte)).toPromise();\r\n let filtro = new ReporteEntradaModel();\r\n filtro.reporteFuente = this.recurso.reporteFuente;\r\n this.parametrosReporte = await this.ejecucionReporteService.obtenerListaEntradaEjecucion(this.reporte).toPromise();\r\n let filtroCruce = new CruceRecursoPuntoModel();\r\n filtroCruce.recursoPunto = this.recurso.llaveTabla;\r\n let cruces: CruceRecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('CruceRecursoPuntoDTO', 'CruceRecursoPunto.consultarCrucePorRecurso', false, filtroCruce)).toPromise();\r\n cruces.forEach(cruce => {\r\n let val;\r\n let cantidadPuntos = this.contarPuntos(cruce.atributoPuntoValor);\r\n let partes = cruce.atributoPuntoValor.split('.');\r\n switch (cantidadPuntos) {\r\n case 0:\r\n val = cruce.atributoPuntoValor;\r\n break;\r\n case 1:\r\n val = this.componente[partes[1]]\r\n break;\r\n case 2:\r\n if (partes[1] == 'credencial'){\r\n val = this.authService.getTokenKey(partes[2])\r\n } else {\r\n let objeto = this.componente[partes[1]]\r\n val = objeto[partes[2]];\r\n }\r\n break;\r\n default:\r\n return;\r\n }\r\n this.parametrosReporte.forEach(entrada => {\r\n if (entrada.unionDTO.llave == cruce.reporteEntrada) {\r\n entrada.unionDTO.valor = val;\r\n }\r\n })\r\n })\r\n this.mostrarPopup = false;\r\n this.mostrarPopupReporte = true;\r\n await this.utilsService.sleep(100);\r\n //this.popupReporte.mostrar(this.recurso.reporteFuente, this.parametrosReporte);\r\n } else {\r\n let fuente: FuenteGeneralModel = new FuenteGeneralModel();\r\n fuente.llaveTabla = this.recurso.fuente;\r\n fuente = await this.generalService.queryForObject(new GeneralModel('FuenteGeneralDTO', null, false, fuente)).toPromise();\r\n this.parametrosService.setParametros({\r\n fuente: fuente,\r\n regresar: window.location.href\r\n })\r\n this.router.navigate([this.utilsService.obtenerBase() + '/webcommon/fuentearchivo/fuente/importarfuenteGeneral'], {skipLocationChange: true})\r\n }\r\n\t}\r\n\r\n contarPuntos(cadena: string): number {\r\n let contador = 0;\r\n for (let i = 0; i < cadena.length; i++) {\r\n if (cadena.charAt(i) === '.') {\r\n contador++;\r\n }\r\n }\r\n return contador;\r\n }\r\n\r\n regresarPopupReporte(event){\r\n this.mostrarPopupReporte = false;\r\n }\r\n\r\n}\r\n","<p-dialog id='popupPuntoProceso' header=\"{{'recurso' | translate}}\" [(visible)]=\"mostrarPopup\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" [modal]=\"true\">\r\n\r\n <div class=\"flex justify-content-between align-items-center mb-2\">\r\n <app-filtro-general #filtroGeneral [filtros]=\"filters\" (metodoRegresar)=\"tipo == 'R' ? cargarPaginador($event) : cargarPaginadorFuente($event)\" >\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"field\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" autocomplete=\"off\"\r\n formControlName=\"descripcion\" />\r\n <label for=\"descripcion\">{{'descripcion'|translate}}</label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n </div>\r\n\r\n <p-table [value]=\"paginador\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\r\n [rows]=\"10\" [totalRecords]=\"paginador.length\" (onRowUnselect)=\"seleccionarRecurso($event)\"\r\n [paginator]=\"paginador.length > 10\" (onRowSelect)=\"seleccionarRecurso($event)\">\r\n <ng-template pTemplate=\"header\">\r\n\r\n <tr class=\"fondoTablaPincipal\">\r\n <th>{{'descripcion' | translate }} </th>\r\n </tr>\r\n <th>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-bean>\r\n <tr [pSelectableRow]=\"bean\">\r\n <td>{{bean.tipo =='R' ? bean.reporteFuenteDescripcion : bean.fuenteDescripcion}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' | translate}}</p>\r\n </ng-template>\r\n </p-table>\r\n</p-dialog>\r\n<app-popup-reporte [mostrar]=\"mostrarPopupReporte\" [reporte]=\"reporte\" [entradasPuntoProceso]=\"parametrosReporte\"\r\n (regresar)=\"regresarPopupReporte($event)\"></app-popup-reporte>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { PopupPuntoProcesoComponent } from '../popup-punto-proceso/popup-punto-proceso.component';\r\nimport { PuntoProcesoModel } from '../../../seguridad/modelos/PuntoProcesoModel';\r\nimport { AtributoPuntoModel } from '../../../seguridad/modelos/AtributoPuntoModel';\r\nimport { RecursoPuntoModel } from '../../../seguridad/modelos/RecursoPuntoModel';\r\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { AuthService } from '../../../core/servicios/auth.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n selector: 'app-punto-proceso-comp',\r\n imports: [CommonModule, PopupPuntoProcesoComponent, ButtonModule],\r\n standalone: true,\r\n templateUrl: './punto-proceso-comp.component.html',\r\n styleUrls: ['./punto-proceso-comp.component.scss']\r\n})\r\nexport class PuntoProcesoCompComponent implements OnInit {\r\n\r\n public punto: PuntoProcesoModel;\r\n\tpublic destino;\r\n\tpublic reportes: RecursoPuntoModel[] = [];\r\n\tpublic fuentes: any[] = [];\r\n\tpublic atributos: AtributoPuntoModel[] = [];\r\n\r\n @Input() public key: string;\r\n @Input() public componente: any;\r\n public verPopupPuntoProceso: boolean;\r\n @ViewChild('popupPuntoProceso') popupPuntoProceso: PopupPuntoProcesoComponent;\r\n\r\n constructor(private generalService: GeneralService,\r\n private utilsService: UtilsService,\r\n private authService: AuthService,) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.key) {\r\n return;\r\n }\r\n this.cargarPunto().then(data => {});\r\n }\r\n\r\n async cargarPunto() {\r\n let filtro: PuntoProcesoModel = new PuntoProcesoModel();\r\n filtro.punto = this.key;\r\n filtro = await this.generalService.queryForObject(new GeneralModel('PuntoProcesoDTO', null, false, filtro)).toPromise();\r\n let filtroRecursos: RecursoPuntoModel = new RecursoPuntoModel();\r\n filtroRecursos.puntoProceso = filtro.llaveTabla;\r\n let aliasRol = this.authService.getTokenKey('aliasRol');\r\n if (!aliasRol) {\r\n aliasRol = '--NOVALIDO--'\r\n }\r\n filtroRecursos.rolUsuario = aliasRol;\r\n let lista: RecursoPuntoModel[] = await this.generalService.queryForList(new GeneralModel('RecursoPuntoDTO', null, false, filtroRecursos)).toPromise();\r\n lista.forEach(element => {\r\n if (element.tipo){\r\n if (element.tipo == 'F') {\r\n this.fuentes.push(element);\r\n } else if (element.tipo == 'R') {\r\n this.reportes.push(element)\r\n }\r\n }\r\n });\r\n let filtroAtributo: AtributoPuntoModel = new AtributoPuntoModel();\r\n filtroAtributo.puntoProceso = filtro.llaveTabla;\r\n this.atributos = await this.generalService.queryForList(new GeneralModel('AtributoPuntoDTO', null, false, filtroAtributo)).toPromise();\r\n }\r\n\r\n async verReportes(){\r\n this.verPopupPuntoProceso = true;\r\n await this.utilsService.sleep(100);\r\n await this.popupPuntoProceso.mostrar(this.reportes, 'R', this.componente);\r\n }\r\n\r\n async verFuentes(){\r\n this.verPopupPuntoProceso = true;\r\n await this.utilsService.sleep(100);\r\n await this.popupPuntoProceso.mostrarFuente(this.fuentes, 'F', this.componente);\r\n }\r\n\r\n}","<!--botones-->\r\n<div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"m-2 p-button p-button-secondary\" *ngIf=\"reportes.length > 0\"\r\n icon=\"glyphicons glyphicons-print\" label=\"Reportes\" (click)=\"verReportes()\">\r\n </button>\r\n\r\n <button pButton pRipple class=\"m-2 p-button-outlined claro\" *ngIf=\"fuentes.length > 0\"\r\n icon=\"glyphicons glyphicons-upload\" label=\"Cargue Masivo\" (click)=\"verFuentes()\">\r\n </button>\r\n</div>\r\n<app-popup-punto-proceso #popupPuntoProceso *ngIf=\"verPopupPuntoProceso\"></app-popup-punto-proceso>","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ColumnaFuenteModel extends UnionModel {\r\n llave: string;\r\n fuenteDato: string;\r\n sintaxis: string;\r\n nombre: string;\r\n tipoDato: string;\r\n} ","\r\nexport class TablaFromModel {\r\n tabla: string;\r\n alias: string;\r\n} ","export class JoinFromModel {\r\n columna1: string;\r\n columna2: string;\r\n} ","import { LlaveForaneaModel } from \"./LlaveForaneaModel\";\r\n\r\nexport class ForeingWraperModel {\r\n\r\n llave: LlaveForaneaModel;\r\n alias1: string;\r\n alias2: string;\r\n\r\n} ","import { ReporteColumnaModel } from \"./ReporteColumna\";\r\n\r\nexport class ColumnaWraperModel {\r\n columna: ReporteColumnaModel;\r\n\tseleccionado: boolean;\r\n\talias: string;\r\n}","export const ConstantesGenerales = {\r\n listaSiNo: new Map<string, string>()\r\n .set('S', 'Si')\r\n .set('N', 'No'),\r\n listaEstado: new Map<string, string>()\r\n .set(\"S\", \"Activo\")\r\n .set(\"N\", \"Inactivo\"),\r\n MENSAJE_INGRESAR : 'Se ingreso el registro',\r\n MENSAJE_GUARDAR : 'Registro guardado',\r\n MENSAJE_ACTUALIZAR : 'Registro Actualizado',\r\n MENSAJE_ACTUALIZAR_VARIOS : 'Se actualizaron los registros',\r\n MENSAJE_ACTUALIZAR_NO : 'Registro NO Actualizado',\r\n MENSAJE_ELIMINAR_VARIOS_CONFIRMAR : 'Desea eliminar los registros seleccionados?',\r\n MENSAJE_ELIMINAR_CONFIRMAR : 'Desea eliminar este registro?',\r\n MENSAJE_ELIMINAR : 'Se elimino correctamente el registro',\r\n MENSAJE_ELIMINAR_VARIOS : 'Se eliminarion correctamente los registros',\r\n MENSAJE_ELIMINAR_NO : 'No se pudo eliminar el registro',\r\n MENSAJE_CANCELAR : 'Registro Cancelado',\r\n MENSAJE_GUARDAR_NO : 'El registro no se pudo guardar por:',\r\n MENSAJE_YA_EXISTE : 'El registro ya existe',\r\n MENSAJE_ORDEN_REPETIDO : 'El orden no se puede repetir',\r\n MENSAJE_NO_EXISTE : 'No existen registros ',\r\n MENSAJE_GENERAR_REPORTE : 'Generando informacion para el reporte',\r\n MENSAJE_FIN_GENERAR_REPORTE : 'Se finalizo la generacion de informacion para reporte',\r\n MENSAJE_INCOMPLETA : 'Informacion incompleta.',\r\n MENSAJE_DUPLICADA : 'Existe mas de un registro.',\r\n ESTADO_ACTIVO: 'A',\r\n PORCENTAJE: \"%\",\r\n };\r\n ","import { UnionModel } from \"./UnionModel\";\r\n\r\nexport class ObjetoReporteModel extends UnionModel {\r\n filtro: string;\r\n objeto: string;\r\n}","import { Component, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { ObjetoReporteModel } from '../../../seguridad/modelos/ObjetoReporteModel';\r\nimport { ReportesService } from '../../services/reportes.service';\r\nimport { ConstantesGenerales } from '../../../seguridad/constantes/ConstantesGenerales';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { TableModule, Table } from 'primeng/table';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\r\nimport { ToastService } from './../../../core/servicios/toast.service';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\n\r\n@Component({\r\n selector: 'app-popup-tablas-fuente',\r\n standalone: true,\r\n imports: [ConfirmDialogModule, ButtonModule, ButtonDirective, TranslateModule, CheckboxModule, TableModule, InputTextModule, ReactiveFormsModule, FormsModule, TablaGeneralComponent, DialogModule, DialogModule, TranslateModule, FiltroGeneralComponent],\r\n providers: [TranslatePipe, MessageService, ConfirmationService],\r\n templateUrl: './popup-tablas-fuente.component.html',\r\n styleUrl: './popup-tablas-fuente.component.scss'\r\n})\r\nexport class PopupTablasFuenteComponent {\r\n public paginadorTablas: ObjetoReporteModel[] = [];\r\n public filtroTabla: string;\r\n public visible: boolean;\r\n public filtro: ObjetoReporteModel = new ObjetoReporteModel();\r\n public filters: any[] = [];\r\n public paginator = {\r\n rows: 10,\r\n totalRecords: 0,\r\n };\r\n public seleccionGeneral: boolean;\r\n public loading: boolean;\r\n public columns: any[] = [];\r\n\r\n @ViewChild('tablaGeneral') tablaGeneral : Table;\r\n\r\n @Output() aplicarDestinoOcultar = new EventEmitter();\r\n\r\n constructor(private confirmationService: ConfirmationService, private reportesSvc: ReportesService, private utilsService: UtilsService, private translateService: TranslateService, private notificationBusService: ToastService) {\r\n this.columns = [\r\n {\r\n field: 'objeto',\r\n header: this.translateService.instant('descripcion'),\r\n width: 100,\r\n },\r\n ];\r\n this.filters = [\r\n {\r\n field: 'descripcion',\r\n header: this.translateService.instant('descripcion'),\r\n matchMode: 'contains',\r\n }\r\n ];\r\n this.load(null);\r\n }\r\n\r\n\r\n cargaLazy(event){\r\n this.tablaGeneral.filterGlobal(this.filtroTabla,'contains');\r\n }\r\n\r\n public async load(event) {\r\n try {\r\n this.loading = true;\r\n this.colocarFiltro();\r\n this.paginadorTablas = await this.reportesSvc.getObjetos(this.filtro).toPromise();\r\n this.paginator.totalRecords = await this.reportesSvc.getCantidadObjetos(this.filtro).toPromise();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n this.loading = false;\r\n }\r\n public colocarFiltro() {\r\n this.filtro = new ObjetoReporteModel();\r\n if (this.filtroTabla != null && this.utilsService.isNotBlank(this.filtroTabla)) {\r\n this.filtro.filtro = (ConstantesGenerales.PORCENTAJE + this.filtroTabla + ConstantesGenerales.PORCENTAJE);\r\n }\r\n }\r\n\r\n public buscarTabla(destino: string) {\r\n try {\r\n this.filtroTabla = '';\r\n this.mostrarPopup();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n\r\n public seleccionarTabla() {\r\n try {\r\n\r\n let tablaSeleccionada = this.paginadorTablas.filter(data => data.check == true);\r\n if (tablaSeleccionada.length == 0) {\r\n this.notificationBusService.showWarning('Seleccione por lo menos un registro');\r\n return\r\n }\r\n this.aplicarDestinoOcultar.emit(tablaSeleccionada);\r\n this.ocultarPopup();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n mostrarPopup() {\r\n this.visible = true;\r\n }\r\n\r\n ocultarPopup() {\r\n this.visible = false;\r\n }\r\n\r\n todosSeleccionados(): boolean {\r\n return this.paginadorTablas.every(elemento => elemento.check);\r\n }\r\n\r\n actualizarSeleccion(booleanogeneral: boolean): void {\r\n if (booleanogeneral) {\r\n this.confirmationService.confirm({\r\n target: event?.target,\r\n message: 'Desea seleccionar todos los registros?',\r\n acceptLabel: 'Si',\r\n key:'eliminar',\r\n header: 'Confirmar',\r\n accept: () => {\r\n this.paginadorTablas.forEach((elemento) => {\r\n elemento.check = booleanogeneral;\r\n });\r\n },\r\n reject: () => {\r\n this.seleccionGeneral =false;\r\n }\r\n });\r\n } else {\r\n this.paginadorTablas.forEach((elemento) => {\r\n elemento.check = booleanogeneral;\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","<p-confirmDialog #cd key=\"eliminar\">\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"mt-3\">\r\n <button type=\"button\"\r\n class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\r\n icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\r\n (click)=\"cd.accept()\"></button>\r\n </div>\r\n </ng-template>\r\n</p-confirmDialog>\r\n<p-dialog id='popupfuenteTablas' header=\"{{'fuente' | translate}}\"\r\n [(visible)]=\"visible\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\"\r\n (onHide)=\"ocultarPopup()\" [modal]=\"true\">\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargaLazy($event)\"> \r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\" [(ngModel)]=\"filtroTabla\"\r\n autocomplete=\"off\" />\r\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n \r\n <button pButton pRipple class=\"ml-2 p-ripple p-element p-button p-component p-button-secondary\"\r\n icon=\"pi pi-plus\" label=\"{{'adicionar' | translate}}\"\r\n (click)=\"seleccionarTabla()\">\r\n </button>\r\n\r\n </div>\r\n \r\n <p-table #tablaGeneral id=\"tabla_lista_tipo_entidad\" [value]=\"paginadorTablas\" [scrollable]=\"true\"\r\n [totalRecords]=\"paginadorTablas.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\r\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"paginadorTablas.length > 10\"\r\n [rows]=\"10\" styleClass=\"p-datatable-striped\"\r\n [showCurrentPageReport]=\"true\" editMode=\"row\" [globalFilterFields]=\"['objeto']\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n dataKey=\"alias\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:25%\" alignFrozen=\"left\" pFrozenColumn>\r\n <p-checkbox [style]=\"{'margin-left': '1%','margin-right':'1%'}\"\r\n [(ngModel)]=\"seleccionGeneral\" [binary]=\"true\" [ngModel]=\"todosSeleccionados()\"\r\n (ngModelChange)=\"actualizarSeleccion($event)\"></p-checkbox>\r\n <span style=\"margin-left:1%\">{{'tabla' | translate}}</span>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-tabla>\r\n <tr>\r\n <td style=\"width:25%\">\r\n <p-checkbox class=\"mr-2 \" [(ngModel)]=\"tabla.check\" [binary]=\"true\" inputId=\"binary\">\r\n </p-checkbox>\r\n {{tabla.objeto}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n\r\n </p-dialog>\r\n","export const ReporteEntradaConstantes = {\r\n tipoDato: new Map<string, string>()\r\n .set(\"F\", \"Fecha\")\r\n .set(\"N\", \"Numero Entero\")\r\n .set(\"B\", \"Numero Decimal\")\r\n .set(\"T\", \"Texto\")\r\n .set(\"E\", \"Serie Texto\")\r\n .set(\"U\", \"Serie Numero\"),\r\n tipo: new Map<string, string>()\r\n .set(\"D\", \"Directo\")\r\n .set(\"L\", \"Lista\"),\r\n TIPO_DIRECTO : \"D\",\r\n TIPO_LISTA : \"L\",\r\n tipoDatoColumna: new Map<string, string>()\r\n .set(\"F\", \"Fecha\")\r\n .set(\"N\", \"Numero\")\r\n .set(\"T\", \"Texto\"),\r\n};\r\n","import { GeneralPipe } from './../../pipes/general.pipe';\r\nimport { ToastService } from './../../../core/servicios/toast.service';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ColumnaFuenteModel } from '../../../seguridad/modelos/ColumnaFuenteModel';\r\nimport { FuenteDatoModel } from '../../../seguridad/modelos/FuenteDato';\r\nimport { ReporteColumnaModel } from '../../../seguridad/modelos/ReporteColumna';\r\nimport { TablaFromModel } from '../../../seguridad/modelos/TablaFromModel';\r\nimport { JoinFromModel } from '../../../seguridad/modelos/JoinFromModel';\r\nimport { ReportesService } from '../../services/reportes.service';\r\nimport { LlaveForaneaModel } from '../../../seguridad/modelos/LlaveForaneaModel';\r\nimport { ForeingWraperModel } from '../../../seguridad/modelos/ForeingWraperModel';\r\nimport { GeneralService } from '../../../shared/servicios/general.service';\r\nimport { GeneralModel } from '../../../seguridad/modelos/GeneralModel';\r\nimport { ColumnaWraperModel } from '../../../seguridad/modelos/ColumnaWraperModel';\r\nimport { UtilsService } from '../../../core/servicios/utils.service';\r\nimport { ConfirmationService, MenuItem, MessageService } from 'primeng/api';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ConstantesGenerales } from '../../../seguridad/constantes/ConstantesGenerales';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CommonModule, NgIf } from '@angular/common';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TablaGeneralComponent } from '../../../core/componentes/tabla-general/tabla-general.component';\r\nimport { FiltroGeneralComponent } from '../../../core/componentes/filtro-general/filtro-general.component';\r\nimport { MenuService } from '../../../core/servicios/menu.service';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { PopupTablasFuenteComponent } from '../../popups/popup-tablas-fuente/popup-tablas-fuente.component';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { ReporteEntradaConstantes } from '../../../seguridad/constantes/ReporteEntradaConstantes';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\n\r\n\r\n\r\n@Component({\r\n\tselector: 'app-fuente-reporte',\r\n\tstandalone: true,\r\n\timports: [ProgressBarModule,TooltipModule,CheckboxModule,PopupTablasFuenteComponent,StepsModule,CommonModule,TabViewModule,SplitButtonModule,NgIf,TranslateModule, InputTextModule,CommonModule, AccordionModule, DropdownModule, FormsModule, TableModule, TablaGeneralComponent, FiltroGeneralComponent, ButtonModule, ReactiveFormsModule, GeneralPipe, InputTextareaModule, ConfirmPopupModule, ButtonModule],\r\n\tproviders: [MessageService,ConfirmationService],\r\n\ttemplateUrl: './fuente-reporte.component.html',\r\n\tstyleUrl: './fuente-reporte.component.scss'\r\n})\r\nexport class FuenteReporteComponent implements OnInit {\r\n\r\n\tpublic fuente: FuenteDatoModel = new FuenteDatoModel();\r\n\tpublic vistaVisualizar: string\r\n\tpublic tablasFrom: TablaFromModel[] = []; // from TablaFrom\r\n\tpublic joinsFrom: JoinFromModel[] = []; //from JoinFrom \r\n\tpublic columnas: ReporteColumnaModel[] = [];\r\n\tpublic listaColumnas: any[] = [];\r\n\tpublic listaJoin: any[] = [];\r\n\tpublic col1: string;\r\n\tpublic col2: string;\r\n\tpublic campos: ColumnaFuenteModel[] = [];\r\n\tpublic camposSeleccionar: ColumnaWraperModel[] = [];\r\n\tpublic mostrarSeleccionar: boolean;\r\n\tpublic campoFormula: ColumnaFuenteModel = new ColumnaFuenteModel();\r\n\tpublic actual: number;\r\n\tpublic tabPrincipal: number;\r\n\tpublic basico: boolean;\r\n\tpublic seleccionGeneral: boolean;\r\n\tpublic foraneas: any[] = [];\r\n\tpublic descripcion: string;\r\n\tpublic query: string;\r\n\tpublic paginador: FuenteDatoModel[] = [];\r\n\tpublic filtro: FuenteDatoModel = new FuenteDatoModel();\r\n\tpublic paginator = {\r\n\t\trows: 10,\r\n\t\ttotalRecords: 0,\r\n\t};\r\n\tpublic columns : any[] = [];\r\n \tpublic filters : any[] = [];\r\n\tpublic loading : boolean;\r\n\tpublic menu: MenuItem[] = [];\r\n\tpublic items: MenuItem[] = [];\r\n\tpublic mapaMensajes: Map<number,string> = new Map<number,string>();\r\n\t@ViewChild('popupTablasFuenteUI') popupTablasFuenteUI: PopupTablasFuenteComponent;\r\n\tpublic tiposDato = ReporteEntradaConstantes.tipoDato\r\n\tpublic clickGuardar: boolean;\r\n\tpublic verNuevoJoin: boolean;\r\n\tpublic activeIndex: number = 0;\r\n\tpublic cargarPaso: boolean;\r\n\tloadingGenerar: boolean;\r\n\r\n\tconstructor(private menuService: MenuService,private notificationBusService: ToastService, private reportesSvc: ReportesService, private generalSvc: GeneralService, public utilsService: UtilsService, private confirmationService: ConfirmationService, private translateService: TranslateService,\r\n\t\tpublic messageService: MessageService, private generalPipe: GeneralPipe) { }\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.listaColumnas = [];\r\n\t\tthis.campos = [];\r\n\t\tthis.listaJoin = [];\r\n\t\tthis.columnas = [];\r\n\t\tthis.tablasFrom = [];\r\n\t\tthis.camposSeleccionar = [];\r\n\t\tthis.joinsFrom = [];\r\n\t\tthis.actual = 0;\r\n\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte' }]);\r\n\t\tthis.columns = [\r\n\t\t {\r\n\t\t\tfield: 'descripcion',\r\n\t\t\theader: this.translateService.instant('descripcion'),\r\n\t\t\twidth: 100,\r\n\t\t },\r\n\t\t];\r\n\t\tthis.filters = [\r\n\t\t {\r\n\t\t\tfield: 'descripcion',\r\n\t\t\theader: this.translateService.instant('descripcion'),\r\n\t\t\tmatchMode: 'contains',\r\n\t\t }\r\n\t\t];\r\n\t\tthis.initStep();\r\n\t}\r\n\r\n\tpublic async load(event) {\r\n\t\ttry {\r\n\t\t\tthis.loading =true;\r\n\t\t\tthis.colocarFiltro();\r\n\t\t\tthis.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0,\r\n\t\t\t\tthis.filtro.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10,\r\n\t\t\t\tthis.paginador = await this.reportesSvc.consultarFuenteDato(this.filtro).toPromise();\r\n\t\t\tthis.paginator.totalRecords = await this.reportesSvc.cantidadFuenteDato(this.filtro).toPromise();\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t\tthis.loading =false;\r\n\t}\r\n\r\n\tpublic colocarFiltro() {\r\n\t\tthis.filtro.origen = (\"F\");\r\n\t\tthis.filtro.descripcion = (null);\r\n\t\tif (this.utilsService.isNotBlank(this.descripcion)) {\r\n\t\t\tthis.filtro.descripcion = (ConstantesGenerales.PORCENTAJE + this.descripcion + ConstantesGenerales.PORCENTAJE);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic limpiarCampos() {\r\n\t\tthis.descripcion = null;\r\n\t}\r\n\r\n\tpublic async siguiente() {\r\n\t\ttry {\r\n\t\t\tif (this.validarWizard()) {\r\n\t\t\t\tthis.cargarPaso = true;\r\n\t\t\t\tif (this.actual < 3) {\r\n\t\t\t\t\tif (this.actual == 0) {\r\n\t\t\t\t\t\tthis.foraneas = [];\r\n\t\t\t\t\t\tif (this.tablasFrom.length == 0) { // No selecciono ninguna tabla\r\n\t\t\t\t\t\t\tthis.notificationBusService.showInfo(\"Debe seleccionar al menos un objeto.\");\r\n\t\t\t\t\t\t\tthis.cargarPaso = false;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} else if (this.tablasFrom.length == 1) { // Solo selecciono una, por eso no hay que generar joins.\r\n\t\t\t\t\t\t\tthis.actual++;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlet nombresTablas = [];\r\n\t\t\t\t\t\t\tfor (let tabla of this.tablasFrom) {\r\n\t\t\t\t\t\t\t\tif (!nombresTablas.includes(tabla.tabla)) {\r\n\t\t\t\t\t\t\t\t\tnombresTablas.push(tabla.tabla);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.foraneas = [];\r\n\t\t\t\t\t\t\t//List<LlaveForanea> \r\n\t\t\t\t\t\t\tlet llaves: LlaveForaneaModel[] = await this.reportesSvc.getLlaves(nombresTablas).toPromise();\r\n\t\t\t\t\t\t\tfor (let i = 0; i < this.tablasFrom.length; i++) {\r\n\t\t\t\t\t\t\t\tfor (let j = 0; j < this.tablasFrom.length; j++) {\r\n\t\t\t\t\t\t\t\t\tfor (let foranea of llaves) {\r\n\t\t\t\t\t\t\t\t\t\tif (foranea.tabla1 == (this.tablasFrom[i].tabla) && foranea.tabla2 == (this.tablasFrom[j].tabla)) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet nuevo: ForeingWraperModel = new ForeingWraperModel();\r\n\t\t\t\t\t\t\t\t\t\t\tnuevo.alias1 = (this.tablasFrom[i].alias);\r\n\t\t\t\t\t\t\t\t\t\t\tnuevo.alias2 = (this.tablasFrom[j].alias);\r\n\t\t\t\t\t\t\t\t\t\t\tnuevo.llave = (foranea);\r\n\t\t\t\t\t\t\t\t\t\t\tthis.foraneas.push(nuevo);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Cargo las columnas para los siguientes procesos.\r\n\r\n\t\t\t\t\t\tthis.columnas = [];\r\n\t\t\t\t\t\tthis.listaColumnas = [];\r\n\t\t\t\t\t\tthis.camposSeleccionar = [];\r\n\r\n\t\t\t\t\t\tfor (let from of this.tablasFrom) {\r\n\t\t\t\t\t\t\t//ReporteColumnaDTO \r\n\t\t\t\t\t\t\tlet ta = new ReporteColumnaModel();\r\n\t\t\t\t\t\t\tta.reporteFuente = (from.tabla);\r\n\t\t\t\t\t\t\t//List<ReporteColumnaDTO> \r\n\t\t\t\t\t\t\tlet nuevas: ReporteColumnaModel[] = await this.generalSvc.queryForList(new GeneralModel('ReporteColumnaDTO', 'Reportes.consultarColumnas', false, ta)).toPromise();\r\n\t\t\t\t\t\t\tthis.cargarListasColumnas(nuevas, from.alias);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.actual++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.terminarPasos();\r\n\t\t\t\t}\r\n\t\t\t\tthis.cargarPaso = false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t\tthis.cargarPaso = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async cargarListasColumnas(nuevas: ReporteColumnaModel[], alias: string) {\r\n\t\tfor (let col of nuevas) {\r\n\t\t\tcol.reporteFuente = (alias);\r\n\t\t\tthis.columnas.push(col);\r\n\t\t\tthis.listaColumnas.push({ value: col.reporteFuente + '.' + col.nombre, label: col.reporteFuente + '.' + col.nombre });\r\n\t\t\tlet campo = new ColumnaWraperModel();\r\n\t\t\tcampo.columna = col;\r\n\t\t\tcampo.alias = col.nombre;\r\n\t\t\tthis.camposSeleccionar.push(campo);\r\n\t\t}\r\n\t\tconsole.log('camposSeleccionar',this.camposSeleccionar);\r\n\t\t\r\n\t}\r\n\r\n\tpublic async terminarPasos() {\r\n\t\tthis.loadingGenerar = true;\r\n\t\tlet camposSql = \"\";\r\n\t\tlet i = 0;\r\n\t\tfor (let col of this.camposSeleccionar) {\r\n\t\t\tif (col.seleccionado) {\r\n\t\t\t\tcamposSql += (i == 0 ? \"\" : \",\") + col.columna.nombre + \" as \" + col.alias;\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.fuente.whereJoin = (this.generarSqlJoin());\r\n\t\tthis.fuente.fromSql = (this.generarSqlFrom());\r\n\t\tlet where = \"\";\r\n\t\tlet estaBlancoWhereJoin: boolean = this.fuente.whereJoin == null || \"\" == (this.fuente.whereJoin);\r\n\t\tlet estaBlancoWhereAdicional: boolean = this.fuente.whereAdicional == null || \"\" == (this.fuente.whereAdicional);\r\n\t\tif (!estaBlancoWhereJoin || !estaBlancoWhereAdicional) {\r\n\t\t\twhere = \" \\nWHERE \";\r\n\t\t\tif (!estaBlancoWhereJoin && !estaBlancoWhereAdicional) {\r\n\t\t\t\twhere += this.fuente.whereJoin + \" AND \\n(\" + this.fuente.whereAdicional + \")\";\r\n\t\t\t} else if (!estaBlancoWhereJoin) {\r\n\t\t\t\twhere += this.fuente.whereJoin;\r\n\t\t\t} else {\r\n\t\t\t\twhere += this.fuente.whereAdicional;\r\n\t\t\t}\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tlet sql = \"SELECT \\n\" + camposSql + \" \\nFROM \\n\" + this.fuente.fromSql + where;\r\n\t\t\tawait this.reportesSvc.validarQuery(sql).toPromise();\r\n\t\t\tthis.fuente.query = (sql);\r\n\t\t\tthis.query = sql;\r\n\t\t\tthis.tabPrincipal = 0;\r\n\t\t\tthis.tablasFrom = [];\r\n\t\t\tthis.construirColumnas();\r\n\t\t\tthis.actual = 0;\r\n\t\t\tthis.notificationBusService.showInfo('Query creada satisfactoriamente.');\r\n\t\t\tthis.loadingGenerar = false;\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t\tthis.loadingGenerar = false;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async adicionarForanea(evento) {\r\n\t\ttry {\r\n\t\t\t//ForeingWraper \r\n\t\t\tlet foranea: ForeingWraperModel = evento.data;\r\n\t\t\tfor (let rel of foranea.llave.relaciones) {\r\n\t\t\t\tlet par = rel.split(\":\");\r\n\t\t\t\tlet join = new JoinFromModel();\r\n\t\t\t\tjoin.columna1 = (foranea.alias1 + \".\" + par[0]);\r\n\t\t\t\tjoin.columna2 = (foranea.alias2 + \".\" + par[1]);\r\n\t\t\t\tif(this.joinsFrom.some(data => data.columna1 === join.columna1 && data.columna2 === join.columna2)){\r\n\t\t\t\t\tthis.notificationBusService.showWarning('Registro ya se encuentra asociado.')\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthis.joinsFrom.push(join);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async eliminar() {\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\ttarget: event.target,\r\n\t\t\tmessage: this.translateService.instant('mensaje_alerta'),\r\n\t\t\ticon: 'confirmar',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.setRespuesta(true)\r\n\t\t\t},\r\n\t\t\treject: () => {\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic async setRespuesta(respuesta: boolean) {\r\n\t\ttry {\r\n\t\t\tif (respuesta) {\r\n\t\t\t\tthis.reportesSvc.eliminarFuenteDatosConHijos(this.fuente).toPromise();\r\n\t\t\t\tthis.fuente = null;\r\n\t\t\t\tthis.notificationBusService.showInfo(\"La fuente ha sido eliminada.\");\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic anterior() {\r\n\t\tif (this.actual > 0){\r\n\t\tif(this.actual == 2 && this.tablasFrom.length == 1){\r\n\t\t\tthis.actual = 0;\r\n\t\t}else{\r\n\t\t\tthis.actual--;\r\n\t\t}\r\n\t\t}\r\n\t\t\t\r\n\t}\r\n\r\n\tpublic async validarQuery() {\r\n\t\ttry {\r\n\r\n\t\t\tif (this.utilsService.validarTextoSQL(this.query, true, true, 8000, true)) {\r\n\t\t\t\tthis.reportesSvc.validarQuery(this.query);\r\n\t\t\t\tthis.notificationBusService.showInfo(\"El query esta correcto.\");\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t//Validador.adicionarMensaje(\"fuenteForm:tab:query\", e.getMessage());\r\n\t\t}\r\n\t}\r\n\r\n\tpublic adicionarJoin() {\r\n\t\ttry {\r\n\t\t\tif (this.col1 != null && this.col2 != null) {\r\n\t\t\t\t// TODO: Falta validar el tipo\r\n\t\t\t\tlet nuevo = new JoinFromModel();\r\n\t\t\t\tnuevo.columna1 = (this.col1);\r\n\t\t\t\tnuevo.columna2 = (this.col2);\r\n\t\t\t\tthis.joinsFrom.push(nuevo);\r\n\t\t\t\tthis.cancelarNuevoJoin();\r\n\t\t\t} else {\r\n\t\t\t\tthis.notificationBusService.showWarning(\"Debe seleccionar dos campos\");\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tnuevoJoin(){\r\n\t\tthis.verNuevoJoin = true;\r\n\t\tthis.col1 = '';\r\n\t\tthis.col2 = '';\r\n\t}\r\n\r\n\tcancelarNuevoJoin(){\r\n\t\tthis.verNuevoJoin = false;\r\n\t\tthis.col1 = '';\r\n\t\tthis.col2 = '';\r\n\t}\r\n\r\n\tpublic eliminarJoin(ae) {\r\n\t\ttry {\r\n\t\t\t//let join = (JoinFrom) ((UIParameter) ae.getComponent().findComponent(\"join\")).getValue();\r\n\t\t\tthis.joinsFrom = this.joinsFrom.filter((data) => data.columna1 !== ae?.columna1);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic eliminarTabla(ae) {\r\n\t\ttry {\r\n\t\t\t//TablaFrom tabla = (TablaFrom) ((UIParameter) ae.getComponent().findComponent(\"tabla\")).getValue();\r\n\t\t\tthis.tablasFrom = this.tablasFrom.filter((data) => data != ae);\r\n\t\t\tthis.notificationBusService.showWarning(\"Falta eliminar las columnas de la tabla ???\");\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic buscarTabla() {\r\n\t\tthis.popupTablasFuenteUI.buscarTabla(\"fuenteUI.tablaSeleccionada\");\r\n\t}\r\n\r\n\tpublic setTablaSeleccionada(tablaSeleccionada: any[]) {\r\n\t\ttry {\r\n\t\t\tlet tablas = [];\r\n\t\t\tfor (let tabla of this.tablasFrom) {\r\n\t\t\t\tif (!tablas.includes(tabla.tabla)) {\r\n\t\t\t\t\ttablas.push(tabla.tabla);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttablaSeleccionada.forEach(element => {\r\n\t\t\t\tthis.cargarTablaEnLista(element.objeto);\r\n\t\t\t});\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate cargarTablaEnLista(tabla: string) {\r\n\t\tlet par = tabla.split(\"_\");\r\n\t\tlet alias = par[0];\r\n\t\tlet i = 1;\r\n\t\tlet tablaTemp = new TablaFromModel()\r\n\t\ttablaTemp.alias = alias;\r\n\t\twhile (this.tablasFrom.includes(tablaTemp)) {\r\n\t\t\talias = tabla + (i++);\r\n\t\t}\r\n\t\tlet tem = new TablaFromModel();\r\n\t\ttem.tabla = tabla;\r\n\t\ttem.alias = alias;\r\n\t\tthis.tablasFrom.push(tem);\r\n\t\treturn alias;\r\n\t}\r\n\r\n\r\n\r\n\tpublic cambioJoin(ce) {\r\n\t\ttry {\r\n\t\t\tthis.listaJoin = [];\r\n\t\t\tlet nuevo = ce.value;\r\n\t\t\tif (nuevo != null) {\r\n\t\t\t\t//ReporteColumnaDTO \r\n\t\t\t\tlet act: ReporteColumnaModel = null;\r\n\t\t\t\tfor (let col of this.columnas) {\r\n\t\t\t\t\tif (nuevo ==(col.reporteFuente + \".\" + col.nombre)) {\r\n\t\t\t\t\t\tact = col;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (let col of this.columnas) {\r\n\t\t\t\t\tif (!col.reporteFuente.startsWith(act.reporteFuente) && col.tipoDato == (act.tipoDato) && col.orden == (act.orden)) {\r\n\t\t\t\t\t\tlet val = col.reporteFuente + \".\" + col.nombre;\r\n\t\t\t\t\t\tthis.listaJoin.push({ value: val, label: val });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic editarCampo(evento) {\r\n\t\ttry {\r\n\t\t\tlet col: ColumnaFuenteModel = evento.data;\r\n\t\t\tthis.campoFormula = col;\r\n\t\t\tlet vars = [];\r\n\t\t\tfor (let campo of this.campos) {\r\n\t\t\t\tlet var1: any;\r\n\t\t\t\tvar1.nombre = (campo.nombre);\r\n\t\t\t\tvar1.tipo = (campo.tipoDato);\r\n\t\t\t\tvars.push(var1);\r\n\t\t\t}\r\n\t\t\t//getBean(EditorFormulaUI.class).editar(col.getSintaxis(), \"fuenteUI.formula\", vars);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic editarWhere() {\r\n\t\ttry {\r\n\t\t\tlet vars = [];\r\n\t\t\tfor (let col of this.columnas) {\r\n\t\t\t\t//VariableFormula \r\n\t\t\t\tlet var1;\r\n\t\t\t\tvar1.nombre = (col.reporteFuente + \".\" + col.nombre);\r\n\t\t\t\tvar1.tipo(col.tipoDato);\r\n\t\t\t\tvars.push(var1);\r\n\t\t\t}\r\n\t\t\t//getBean(EditorFormulaUI.class).editar(fuente.getWhereAdicional(), \"fuenteUI.fuente.whereAdicional\", vars);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic setFormula(formula) {\r\n\t\tif (this.campoFormula != null) {\r\n\t\t\tthis.campoFormula.sintaxis = (formula);\r\n\t\t}\r\n\t\tthis.campoFormula = null;\r\n\t}\r\n\r\n\tpublic adicionarColumnas() {\r\n\t\tfor (let col of this.camposSeleccionar) {\r\n\t\t\tcol.seleccionado = (false);\r\n\t\t}\r\n\t\tthis.mostrarSeleccionar = true;\r\n\t}\r\n\r\n\tpublic agregarSeleccionados() {\r\n\t\ttry {\r\n\t\t\tfor (let col of this.camposSeleccionar) {\r\n\t\t\t\tif (col.seleccionado) {\r\n\t\t\t\t\t//ColumnaFuenteDTO \r\n\t\t\t\t\tlet campo = new ColumnaFuenteModel();\r\n\t\t\t\t\tcampo.fuenteDato = (this.fuente.llave);\r\n\t\t\t\t\tcampo.nombre = (col.columna.nombre);\r\n\t\t\t\t\tcampo.sintaxis = (col.columna.nombre);\r\n\t\t\t\t\tthis.campos.push(campo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.ocultarSeleccionar();\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic ocultarSeleccionar() {\r\n\t\tthis.mostrarSeleccionar = false;\r\n\t}\r\n\r\n\tpublic async verDetalle(evento) {\r\n\t\ttry {\r\n\t\t\tthis.vistaVisualizar = 'mantenimiento';\r\n\t\t\tlet fuenteDatoDTO = evento;\r\n\t\t\tthis.fuente = new FuenteDatoModel();\r\n\t\t\tthis.fuente.llave = (fuenteDatoDTO.llave);\r\n\t\t\tthis.fuente = await this.reportesSvc.consultarUnicaFuenteDato(this.fuente).toPromise();\r\n\t\t\tif (this.fuente.query2 != null) {\r\n\t\t\t\tthis.query = this.fuente.query + this.fuente.query2;\r\n\t\t\t} else {\r\n\t\t\t\tthis.query = this.fuente.query;\r\n\t\t\t}\r\n\t\t\t//ColumnaFuenteDTO \r\n\t\t\tlet col = new ColumnaFuenteModel();\r\n\t\t\tcol.fuenteDato = (this.fuente.llave);\r\n\t\t\tthis.campos = await this.reportesSvc.consultarColumnasFuente(col).toPromise();\r\n\t\t\tthis.actual = 0;\r\n\t\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte', }, {label: 'Mantenimiento Fuente'}]);\r\n\t\t\tthis.cargasOpciones();\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic nuevo() {\r\n\t\ttry {\r\n\t\t\tthis.vistaVisualizar = 'mantenimiento';\r\n\t\t\tthis.fuente = new FuenteDatoModel();\r\n\t\t\tthis.fuente.origen = (\"F\");\r\n\t\t\tthis.campos = null;\r\n\t\t\tthis.query = null;\r\n\t\t\tthis.tabPrincipal = 0;\r\n\t\t\tthis.actual = 0;\r\n\t\t\tthis.menuService.setBreadcrumb([{ label: 'Fuente Reporte', }, {label: 'Mantenimiento Fuente'}]);\r\n\t\t\tthis.cargasOpciones();\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tcargasOpciones(){\r\n\t\tthis.menu= [{label: this.translateService.instant('link_eliminar'), icon: 'glyphicons glyphicons-bin', visible: this.fuente.llave != null, command: (event) => {this.eliminar()}},\r\n\t\t{label: this.translateService.instant('link_validar'), icon: 'glyphicons glyphicons-check', command: (event) => {this.validarQuery()}},\r\n\t\t{label: this.translateService.instant('link_generar'), icon: 'glyphicons glyphicons-refresh',visible: this.fuente.llave != null, command: (event) => {this.construirColumnas()}},\r\n\t\t]\r\n\t}\r\n\r\n\tregresar(){\r\n\t\tthis.vistaVisualizar = null;\r\n\t\tthis.ngOnInit();\r\n\t}\r\n\r\n\tprivate validar(): boolean {\r\n\t\tlet res = true;\r\n\t\tthis.clickGuardar = true;\r\n\t\tres = res && this.utilsService.validarCampoObligatorio(this.fuente.descripcion);\r\n\t\tres = res && (this.utilsService.validarTextoSQL(this.query, true, true, 8000, true) == null);\r\n\t\treturn res;\r\n\t}\r\n\r\n\t/**\r\n\t * Registra/actualiza la informacion general de la fuente de datos\r\n\t */\r\n\tpublic async guardar() {\r\n\t\ttry {\r\n\t\t\tif (this.validar()) {\r\n\t\t\t\tthis.clickGuardar = false;\r\n\t\t\t\tif (this.query.length > 4000) {\r\n\t\t\t\t\tthis.fuente.query = (this.query.substring(0, 3999));\r\n\t\t\t\t\tthis.fuente.query2 = (this.query.substring(3999, this.query.length));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.fuente.query = (this.query);\r\n\t\t\t\t\tthis.fuente.query2 = (null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.fuente.llave == null) {\r\n\t\t\t\t\tthis.fuente.llave = (this.utilsService.generarLlave());\r\n\t\t\t\t\tawait this.reportesSvc.insertarFuenteDato(this.fuente).toPromise();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tawait this.reportesSvc.actualizarFuenteDato(this.fuente).toPromise();\r\n\t\t\t\t}\r\n\t\t\t\tthis.notificationBusService.showInfo(\"Los cambios han sido guardados\");\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}//guardar\r\n\r\n\t/**\r\n\t * Registra/actualiza las columnas generados para la fuente de datos como registros de tipo 'ColumnaFuente'\r\n\t */\r\n\tpublic async guardarCampos() {\r\n\t\ttry {\r\n\t\t\tif (this.fuente.llave == null) {\r\n\t\t\t\tthis.notificationBusService.showInfo(\"Por favor diligencie primero los datos de la fuente\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (this.validarCampos()) {\r\n\t\t\t\tawait this.reportesSvc.actualizarColumnasFuente(this.fuente, this.campos).toPromise();\r\n\t\t\t\tthis.notificationBusService.showInfo(\"Se han guardado los campos\");\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}//guardarCampos\r\n\r\n\t/**\r\n\t * Verifica que los valores asociados a los campos para la creacion de las columnas de la fuente sean válidos\r\n\t * @return false en caso de que los valores asignados a los campos sean nulos o no sean palabras válidas de acuerdo \r\n\t * con las condiciones dadas por ValidadorUtil.validarPalabra()),\r\n\t * en caso contrario retorna true\r\n\t */\r\n\tprivate validarCampos() {\r\n\t\tfor (let col of this.campos) {\r\n\t\t\tif (col.nombre == null || !this.utilsService.validarPalabra(col.nombre)) {\r\n\t\t\t\tthis.notificationBusService.showInfo(\"Nombre no valido (\" + col.nombre + \")\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Construye las columnas de la fuente de datos, con base en los campos obtenidos \r\n\t * de la consulta SQL asociada\r\n\t */\r\n\tpublic async construirColumnas() {\r\n\t\ttry {\r\n\t\t\tthis.campos = await this.reportesSvc.getColumnasSql(this.query).toPromise();\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}//construirColumnas\r\n\r\n\r\n\r\n\tprivate validarWizard() {\r\n\t\tlet alias: string[] = [];\r\n\t\tfor (let tabla of this.tablasFrom) {\r\n\t\t\tif (alias.includes(tabla.alias)) {\r\n\t\t\t\tthis.notificationBusService.showInfo(\"No se puede repetir el alias de las tablas.\");\r\n\t\t\t\treturn false;\r\n\t\t\t} else {\r\n\t\t\t\talias.push(tabla.alias);\r\n\t\t\t}\r\n\t\t}\r\n\t\talias = [];\r\n\t\tfor (let col of this.camposSeleccionar) {\r\n\t\t\tif (col.seleccionado) {\r\n\t\t\t\tif (alias.includes(col.alias)) {\r\n\t\t\t\t\tthis.notificationBusService.showInfo(\"No se puede repetir el alias de las columnas.\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\talias.push(col.alias);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate generarSqlFrom() {\r\n\t\tlet res = \"\";\r\n\t\tlet i = 0;\r\n\t\tfor (let tabla of this.tablasFrom) {\r\n\t\t\tres += (i == 0 ? \"\" : \",\") + tabla.tabla + \" \" + tabla.alias;\r\n\t\t\ti++;\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\tprivate generarSqlJoin() {\r\n\t\tlet res = \"\";\r\n\t\tlet i = 0;\r\n\t\tfor (let join of this.joinsFrom) {\r\n\t\t\tres += (i == 0 ? \"\" : \" AND \") + join.columna1 + \" = \" + join.columna2;\r\n\t\t\ti++;\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\r\n\t//IMPLEMENTACION STEPER\r\n\tinitStep(){\r\n\t\tthis.mapaMensajes.set(0,'Seleccione las tablas o vistas de donde desea obtener la informaci'+this.generalPipe.O_TIDLE_MIN+'n.')\r\n\t\tthis.mapaMensajes.set(1,'Indique de qu'+this.generalPipe.E_TILDE_MIN+' manera se relacionan los objetos entre s'+this.generalPipe.I_TILDE_MIN+'.')\r\n\t\tthis.mapaMensajes.set(2,'Indique los filtros adicionales que desee realizar sobre la informaci'+this.generalPipe.O_TIDLE_MIN+'n.')\r\n\t\tthis.mapaMensajes.set(3,'Seleccione los campos que desee ver en la consulta.')\r\n\t\tthis.items = [\r\n {\r\n label: this.translateService.instant('from'),\r\n command: (event) => {console.log(event);},\r\n\t\t\t\tdisabled: true,\r\n\t\t\t\ttitle:'Seleccione las tablas o vistas de donde desea obtener la informacion.'\r\n },\r\n {\r\n label: this.translateService.instant('join'),\r\n\t\t\t\tcommand: (event) => {console.log(event);},\r\n\t\t\t\tdisabled: true,\r\n title: 'Indique de que manera se relaccionan los objetos entre si.'\r\n },\r\n {\r\n label: this.translateService.instant('where'),\r\n\t\t\t\tcommand: (event) => {console.log(event);},\r\n\t\t\t\tdisabled: true,\r\n title: 'Indique los filtros adicionales que desee realizar sobre la informacion.'\r\n },\r\n {\r\n label: this.translateService.instant('campos'),\r\n command: (event) => {console.log(event);},\r\n\t\t\t\tdisabled: true,\r\n }\r\n ];\r\n\t}\r\n\r\n\tactualizarSeleccion(booleanogeneral: boolean): void {\r\n\t\tthis.camposSeleccionar.forEach((elemento) => {\r\n\t\t\telemento.seleccionado = booleanogeneral;\r\n\t\t});\r\n\t}\r\n\r\n\ttodosSeleccionados(): boolean {\r\n\t\treturn this.camposSeleccionar.every(elemento => elemento.seleccionado);\r\n\t}\r\n\r\n\r\n}\r\n","@if(vistaVisualizar == null){\r\n<h1>{{'fuente' | translate}} {{'reporte'| translate}}</h1>\r\n<div class=\"flex justify-content-between align-items-center mb-3\">\r\n <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\r\n <ng-template let-form>\r\n <ng-container [formGroup]=\"form\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\r\n autocomplete=\"off\" />\r\n <label for=\"descripcion\">{{'filtro' | translate}}</label>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n </app-filtro-general>\r\n <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n</div>\r\n<app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"paginador\" [rows]=\"paginator.rows\"\r\n [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"load($event)\" (onRowSelect)=\"verDetalle($event)\"\r\n [loading]=\"loading\"></app-tabla-general>\r\n}\r\n@if(vistaVisualizar != null){\r\n<div class=\"flex justify-content-between align-items-center mb-3\">\r\n <h1>{{'fuente' | translate}} {{'reporte'| translate}}</h1>\r\n <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\r\n class=\"p-button-text font-semibold\"></button>\r\n</div>\r\n<p-tabView [(activeIndex)]=\"tabPrincipal\">\r\n <p-tabPanel header=\"{{ 'fuente'| translate}}\">\r\n <div class=\"card\">\r\n <div class=\"mt-4\">\r\n <h5><i class=\"glyphicons glyphicons-book\"></i>{{'datos'| translate}} {{'basicos'| translate}}</h5>\r\n </div>\r\n\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <span class=\"p-float-label\">\r\n <input pInputText autofocus type=\"text\" id=\"peso\" [(ngModel)]=\"fuente.descripcion\"\r\n autocomplete=\"off\" />\r\n <label for=\"peso\">{{'nombre' | translate}}</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"query\"\r\n autofocus [autoResize]=\"true\"> </textarea>\r\n <label for=\"descripcion\">{{'consulta' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end mb-2\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\r\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\r\n </button>\r\n <p-splitButton class=\"ml-2\" label=\"Acciones Fuente\" icon=\"glyphicons glyphicons-list\"\r\n [model]=\"menu\"></p-splitButton>\r\n </div>\r\n </div>\r\n <div class=\"flex justify-content-end mb-2\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-secondary\" icon=\"glyphicons glyphicons-floppy-save\"\r\n label=\"{{'link_guardar' | translate}}\" (click)=\"guardarCampos()\">\r\n </button>\r\n </div>\r\n\r\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"campos\" [scrollable]=\"true\"\r\n [totalRecords]=\"campos.length\" [paginator]=\"camposSeleccionar.length > 10\" [rows]=\"10\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" scrollDirection=\"horizontal\"\r\n styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\" editMode=\"row\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\r\n dataKey=\"llaveTabla\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:25%\">{{'nombre' | translate}}</th>\r\n <th style=\"width:25%\">{{'sintaxis' | translate}}</th>\r\n <th style=\"width:25%\">{{'tipo' | translate}} de {{'dato' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-campo let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"campo\">\r\n <td style=\"width:25%\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"campo.nombre \" class=\"w-full\">\r\n </td>\r\n <td style=\"width:25%\">\r\n {{campo.tipoDato}}\r\n </td>\r\n <td style=\"width:25%\">\r\n {{campo.tipoDato}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </p-tabPanel>\r\n\r\n\r\n <p-tabPanel header=\"{{ 'wizard'| translate}}\">\r\n <p-steps [model]=\"items\" [readonly]=\"false\" [activeIndex]=\"actual\"></p-steps>\r\n\r\n <div class=\"cardInstrucciones mt-4 mb-3\" style=\"margin-bottom: 0px !important;\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <div class=\"flex\">\r\n <div class=\"icono\">\r\n <i class=\"pi pi-bell\"></i>\r\n </div>\r\n <div class=\"contenedor\" style=\"margin-top: 2%;\">\r\n <label>{{mapaMensajes?.get(actual)}}</label>\r\n </div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-end\">\r\n <p-button (onClick)=\"anterior()\" [rounded]=\"true\" icon=\"pi pi-angle-left\" class=\"p-button-outlined\"\r\n pTooltip=\"Anterior\" tooltipPosition=\"top\" placeholder=\"Top\"\r\n [outlined]=\"true\" [disabled]=\"actual <= 0\" />\r\n <p-button (onClick)=\"siguiente()\" [rounded]=\"true\" icon=\"pi pi-angle-right\" class=\"p-button-outlined\"\r\n [outlined]=\"true\" *ngIf=\"actual != 3\"\r\n [pTooltip]=\"actual === 3 ? 'Terminar': 'Siguiente'\" tooltipPosition=\"top\" placeholder=\"Top\" />\r\n\r\n <button pButton label=\"{{'terminar' | translate}}\" icon=\"pi pi-angle-right\" (click)=\"siguiente()\"\r\n *ngIf=\"actual === 3\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary p-2 ml-2\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '3px' }\" *ngIf=\"cargarPaso\" />\r\n\r\n <div class=\"mt-2\" *ngIf=\"!cargarPaso\">\r\n @if(actual === 0){\r\n <div class=\"flex justify-content-end mb-2\">\r\n <button pButton label=\"{{'fuente' | translate}}\" icon=\"pi pi-plus\" (click)=\"buscarTabla()\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2 mt-3\"></button>\r\n </div>\r\n <div>\r\n\r\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"tablasFrom\" [scrollable]=\"true\"\r\n [totalRecords]=\"tablasFrom.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\r\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"tablasFrom.length > 10\"\r\n [rows]=\"10\" [rowsPerPageOptions]=\"[10, 20, 30]\" styleClass=\"p-datatable-striped\"\r\n [showCurrentPageReport]=\"true\" editMode=\"row\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\r\n dataKey=\"llave\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\r\n <th style=\"width:25%\">{{'alias' | translate}}</th>\r\n <th style=\"width:25%\"> </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"tabla\">\r\n <td style=\"width:25%\">\r\n {{tabla.tabla}}\r\n </td>\r\n <td style=\"width:25%\">\r\n {{tabla.alias}}\r\n </td>\r\n <td class=\"flex justify-content-end\">\r\n <div>\r\n <!-- ELIMINAR -->\r\n <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\r\n (click)=\"eliminarTabla(tabla)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n }\r\n @if(actual == 1){\r\n <div class=\"mt-3\">\r\n <h4>{{'foranea'| translate}}</h4>\r\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"foraneas\" [scrollable]=\"true\"\r\n selectionMode=\"single\" scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\r\n editMode=\"row\" (onRowSelect)=\"adicionarForanea($event)\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\" dataKey=\"llave\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\r\n <th style=\"width:25%\">{{'tabla' | translate}}</th>\r\n <th style=\"width:25%\">{{'campo' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pSelectableRow]=\"tabla\">\r\n <td style=\"width:25%\">\r\n {{tabla.alias1}}\r\n </td>\r\n <td style=\"width:25%\">\r\n {{tabla.alias2}}\r\n </td>\r\n <td style=\"width:25%\">\r\n {{tabla.llave.nombre}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n \r\n <div class=\"card mt-3\">\r\n <div class=\"tabla-planta-personal\"\r\n style=\"padding: 0% !important;background: transparent !important;height: auto !important;\">\r\n <div class=\"flex justify-content-between align-items-center mb-2 mt-2\">\r\n <h4>{{'join'| translate}}</h4>\r\n <button pButton label=\"{{'agregar' | translate}} {{'join' | translate}}\" (click)=\"nuevoJoin()\"\r\n icon=\"pi pi-plus\"\r\n class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\r\n </div>\r\n <p-table #tablaGeneralEntrada id=\"tabla_lista_tipo_entidad\" [value]=\"joinsFrom\" [scrollable]=\"true\"\r\n scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\r\n scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [showCurrentPageReport]=\"true\"\r\n editMode=\"row\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\r\n [lazy]=\"true\" dataKey=\"llave\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:45%\">{{'campo' | translate}} 1</th>\r\n <th style=\"width:5%\">{{'=' | translate}}</th>\r\n <th style=\"width:45%\">{{'campo' | translate}} 2</th>\r\n <th>{{'' | translate}}</th>\r\n </tr>\r\n <tr class=\" TablaNuevoRegistro\" *ngIf=\"verNuevoJoin\">\r\n <td style=\"width:45%\">\r\n <p-dropdown [options]=\"listaColumnas\" optionValue=\"value\" [(ngModel)]=\"col1\"\r\n appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"label\" (onChange)=\"cambioJoin($event)\"></p-dropdown>\r\n </td>\r\n <td style=\"width:5%\">=</td>\r\n <td style=\"width:45%\">\r\n <p-dropdown [options]=\"listaJoin\" optionValue=\"value\" [(ngModel)]=\"col2\"\r\n appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\"\r\n optionLabel=\"label\"></p-dropdown>\r\n </td>\r\n\r\n <td class=\"flex justify-content-end\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"adicionarJoin()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"cancelarNuevoJoin()\"\r\n icon=\"pi pi-times\"\r\n class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-tabla let-editing=\"editing\" let-ri=\"rowIndex\">\r\n <tr [pEditableRow]=\"tabla\">\r\n <td style=\"width:45%\">\r\n {{tabla.columna1}}\r\n </td>\r\n <td style=\"width:5%\">\r\n {{'='}}\r\n </td>\r\n <td style=\"width:45%\">\r\n {{tabla.columna2}}\r\n </td>\r\n <td>\r\n <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\r\n (click)=\"eliminarJoin(tabla)\"\r\n class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n }\r\n @if(actual == 2){\r\n\r\n <div class=\"card\">\r\n <div class=\"mt-4\">\r\n <h5><i class=\"glyphicons glyphicons-book\"></i>{{'where'| translate}}</h5>\r\n </div>\r\n\r\n <div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-12 lg:col-12\">\r\n <span class=\"p-float-label\">\r\n <textarea class=\"w-full\" id=\"float-input\" rows=\"5\" cols=\"30\" pInputTextarea\r\n [(ngModel)]=\"fuente.whereAdicional\" autofocus [autoResize]=\"true\"> </textarea>\r\n <label for=\"descripcion\">{{'consulta' | translate}}\r\n </label>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"flex justify-content-end\">\r\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\r\n icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\r\n (click)=\"editarWhere()\">\r\n </button>\r\n </div> -->\r\n </div>\r\n\r\n }\r\n @if(actual == 3){\r\n <div class=\"mt-3\">\r\n <p-table id=\"tabla_lista_tipo_entidad\" [value]=\"camposSeleccionar\" [scrollable]=\"true\"\r\n [totalRecords]=\"camposSeleccionar.length\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\r\n responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [paginator]=\"camposSeleccionar.length > 10\"\r\n [rows]=\"10\" [rowsPerPageOptions]=\"[10, 20, 30]\" styleClass=\"p-datatable-striped\"\r\n [showCurrentPageReport]=\"true\" editMode=\"row\"\r\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\r\n dataKey=\"alias\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width:25%\" alignFrozen=\"left\" pFrozenColumn>\r\n <p-checkbox [style]=\"{'margin-left': '1%','margin-right':'1%'}\"\r\n [(ngModel)]=\"seleccionGeneral\" [binary]=\"true\" [ngModel]=\"todosSeleccionados()\"\r\n (ngModelChange)=\"actualizarSeleccion($event)\"></p-checkbox>\r\n <span style=\"margin-left:1%\">{{'tabla' | translate}}</span>\r\n </th>\r\n <th style=\"width:25%\">{{'columna' | translate}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-tabla>\r\n <tr>\r\n <td style=\"width:25%\">\r\n <p-checkbox class=\"mr-2 \" [(ngModel)]=\"tabla.seleccionado\" [binary]=\"true\"\r\n inputId=\"binary\">\r\n </p-checkbox>\r\n {{tabla.columna.reporteFuente}}\r\n </td>\r\n <td style=\"width:25%\">\r\n {{tabla.columna.nombre}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"5\">\r\n {{'mensajetablavacia' | translate}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n }\r\n </div>\r\n </p-tabPanel>\r\n</p-tabView>\r\n\r\n}\r\n\r\n<app-popup-tablas-fuente #popupTablasFuenteUI\r\n (aplicarDestinoOcultar)=\"setTablaSeleccionada($event)\"></app-popup-tablas-fuente>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PrimeTemplate } from 'primeng/api';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { TableModule } from 'primeng/table';\r\nimport { PlantillasService } from '../../services/plantillas.service';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Ripple } from 'primeng/ripple';\r\nimport { ButtonDirective } from 'primeng/button';\r\nimport { ToastService } from '../../../core/servicios/toast.service';\r\n\r\n@Component({\r\n selector: 'app-popup-convertir-plantillas',\r\n standalone: true,\r\n imports: [DialogModule,\r\n TableModule,\r\n PrimeTemplate,\r\n TranslateModule,\r\n CheckboxModule,\r\n FormsModule,\r\n ButtonDirective,\r\n Ripple,],\r\n templateUrl: './popup-convertir-plantillas.component.html',\r\n styleUrl: './popup-convertir-plantillas.component.scss'\r\n})\r\nexport class PopupConvertirPlantillasComponent implements OnInit {\r\n\r\n @Output() onSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output() regresar: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() showDialog: boolean = false;\r\n\r\n listaArchivo: any[];\r\n listaSeleccionados: any[] = [];\r\n seleccionar: boolean = true;\r\n seleccionarTodo: boolean = false;\r\n\r\n\r\n constructor(private plantillasService: PlantillasService, public translateService: TranslateService, private toastService: ToastService,) { }\r\n\r\n public ocultar() {\r\n this.showDialog = false;\r\n this.regresar.emit(false);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.listaArchivo = [];\r\n this.listaSeleccionados = [];\r\n }\r\n\r\n async buscar(rutaPlantilla: string, filtro: string) {\r\n\r\n let data = await firstValueFrom(this.plantillasService.consultarListadoPlanillasAConvertir(rutaPlantilla, filtro));\r\n\r\n this.listaArchivo = data;\r\n\r\n if (!(this.listaArchivo.length > 0)) {\r\n this.toastService.showWarning(\"No existe plantillas para convertir\");\r\n this.ocultar();\r\n }\r\n\r\n this.showDialog = true;\r\n }\r\n\r\n cambiarEstadoCheck() {\r\n\r\n if (this.seleccionar) {\r\n this.seleccionar = false;\r\n for (let per of this.listaArchivo) {\r\n per.check = true;\r\n }\r\n } else {\r\n this.seleccionar = true;\r\n for (let per of this.listaArchivo) {\r\n per.check = false;\r\n }\r\n }\r\n return null;\r\n\r\n }\r\n\r\n estadoCheck(dato: any) {\r\n\r\n let isvalidar = false;\r\n\r\n for (let per of this.listaArchivo) {\r\n if (!per.check) {\r\n isvalidar = true;\r\n break;\r\n }\r\n }\r\n\r\n if (isvalidar) {\r\n this.seleccionar = true;\r\n this.seleccionarTodo = false;\r\n } else {\r\n this.seleccionar = false;\r\n this.seleccionarTodo = true;\r\n }\r\n\r\n }\r\n\r\n async continuar() {\r\n\r\n if (await this.selecciona()) {\r\n //Guarda el documento\r\n await firstValueFrom(this.plantillasService.convertirArchivo(this.listaSeleccionados));\r\n this.toastService.showSuccess(\"Se han convertido exitosamente los registros seleccionados\");\r\n this.ocultar();\r\n\r\n } else {\r\n this.toastService.showWarning(\"Seleccione al menos un registro\");\r\n return;\r\n }\r\n\r\n }\r\n\r\n async selecciona(): Promise<boolean> {\r\n\r\n this.listaSeleccionados = [];\r\n\r\n if (this.listaArchivo.length > 0) {\r\n for (let ser of this.listaArchivo) {\r\n if (ser.check) {\r\n this.listaSeleccionados.push(ser);\r\n }\r\n }\r\n }\r\n return this.listaSeleccionados.length > 0;\r\n }\r\n\r\n}\r\n","<p-dialog header=\"{{ 'seleccione' | translate }}\" [(visible)]=\"showDialog\" (onHide)=\"ocultar()\"\r\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '30vw' }\">\r\n\r\n <div class=\"flex justify-content-end align-items-center mb-2\">\r\n <!-- Botón de Reportes-->\r\n <button pButton pRipple label=\"{{'continuar' | translate}}\" icon=\"glyphicons glyphicons-check\"\r\n class=\"p-button-secondary font-semibold mr-2 border-solid-1 border-color-75\"\r\n (click)=\"continuar()\"></button>\r\n </div>\r\n\r\n <p-table #tablaGeneral id=\"tabla_listado_control_prorroga\" [value]=\"listaArchivo\" responsiveLayout=\"scroll\"\r\n [rows]=\"10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [paginator]=\"listaArchivo.length > 10\"\r\n [scrollable]=\"true\" [totalRecords]=\"listaArchivo.length\" [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 20, 50]\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n @if(listaArchivo.length > 0){\r\n <th style=\"max-width:50px; margin-left: 2px;\">\r\n <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoCheck()\" [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\">\r\n </p-checkbox>\r\n </th>\r\n }\r\n <th>{{'descripcion' | translate}}</th>\r\n </tr>\r\n <th></th>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-dato>\r\n <tr>\r\n <td style=\"max-width:50px\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox class=\"ml-1\" [(ngModel)]=\"dato.check\" [binary]=\"true\" (onChange)=\"estadoCheck(dato)\"\r\n (click)=\"$event.stopPropagation()\">\r\n </p-checkbox>\r\n </div>\r\n </td>\r\n <td>{{dato.nombre}}</td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"p-3 font-medium emptymessage\">\r\n <td colspan=\"10\"> {{'mensajetablavacia' | translate}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n</p-dialog>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ConfirmationService, MenuItem, TreeNode } from 'primeng/api';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { Tree, TreeModule } from 'primeng/tree';\r\nimport { AuthService } from '../../../../core/servicios/auth.service';\r\nimport { PlantillasService } from '../../../../webcommon/services/plantillas.service';\r\nimport { CargarControlFuncionalidadService } from '../../../../core/servicios/cargar-control-funcionalidad.service';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { FormsModule, NgForm } from '@angular/forms';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { ToastService } from '../../../../core/servicios/toast.service';\r\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\r\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\r\nimport { GeneralPipe } from '../../../../webcommon/pipes/general.pipe';\r\nimport { PopupConvertirPlantillasComponent } from '../../../../webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component';\r\nimport { UtilsService } from '../../../../core/servicios/utils.service';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { EditorModule } from 'primeng/editor';\r\n\r\n@Component({\r\n selector: 'app-cargue-plantilla-general',\r\n standalone: true,\r\n imports: [TranslateModule,\r\n CommonModule,\r\n TreeModule,\r\n InputTextModule,\r\n ButtonModule,\r\n SplitButtonModule,\r\n ConfirmPopupModule,\r\n FormsModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n PopupConvertirPlantillasComponent,\r\n EditorModule\r\n ],\r\n templateUrl: './cargue-plantilla-general.component.html',\r\n styleUrl: './cargue-plantilla-general.component.scss',\r\n providers: [\r\n ConfirmationService\r\n ]\r\n})\r\nexport class CarguePlantillaGeneralComponent {\r\n\r\n @ViewChild(PopupConvertirPlantillasComponent) popupConvertirPlantillasComponent: PopupConvertirPlantillasComponent;\r\n @ViewChild('miFormulario', { static: false }) miFormulario!: NgForm;\r\n @ViewChild('tree') treeComponent!: Tree;\r\n\r\n loading: boolean;\r\n propiedad: string;\r\n extensiones: string;\r\n propiedadDeSistema: boolean = false;\r\n anexoPropiedad: string = '';\r\n files: TreeNode[];\r\n dataSelected: TreeNode;\r\n itemsBotonAcciones: MenuItem[];\r\n verConvertir: boolean;\r\n nomNuevaCarpeta: string;\r\n isVisualizarCrearCaperta: boolean = false;\r\n archivoSeleccionadoAnexo: File;\r\n archivoSeleccionado: TreeNode;\r\n isMostrarPopupConvertir: boolean = false;\r\n rutaPrincipal: string;\r\n filteredFiles: TreeNode[] = [];\r\n filterValue: string = '';\r\n\r\n FORMATS_VALIDOS: Set<string> = new Set([\r\n '.doc',\r\n '.html',\r\n '.jasper',\r\n '.xls',\r\n '.jrxml',\r\n '.odt',\r\n '.xlsm',\r\n '.xlsx',\r\n '.pgp',\r\n '.asc',\r\n '.cer',\r\n '.p12',\r\n '.docx',\r\n '.properties'\r\n ]);\r\n filtroConvertir: string;\r\n html: boolean;\r\n mostrarEditor: boolean;\r\n modificarHTML: string;\r\n\r\n constructor(private plantillasService: PlantillasService, private authService: AuthService, public translateService: TranslateService,\r\n public controlFuncionService: CargarControlFuncionalidadService, private confirmationService: ConfirmationService,\r\n private toastService: ToastService, private cargarArchivoServices: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService,\r\n private generalPipe: GeneralPipe, public utilsService: UtilsService\r\n ) { }\r\n\r\n async ngOnInit(): Promise<void> {\r\n\r\n this.mostrarEditor = false;\r\n let consultarRutaPrincipal = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_plantillas\", aplicacion: 1 }));\r\n let convertir = await firstValueFrom(this.cargarArchivoServices.getPropiedad({ propiedad: \"servidor_openOffice\", aplicacion: 0 }));\r\n this.verConvertir = !convertir.valor.valor ? true : false;\r\n this.rutaPrincipal = consultarRutaPrincipal.valor.valor;\r\n this.isVisualizarCrearCaperta = false;\r\n await this.openDataTable();\r\n\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n await sleep(100);\r\n\r\n if (this.filterValue) {\r\n await this.aplicarFiltro();\r\n }\r\n }\r\n\r\n async openDataTable() {\r\n\r\n setTimeout(() => {\r\n this.loading = true;\r\n\r\n if (!this.propiedad) {\r\n this.propiedad = 'ruta_plantillas'\r\n }\r\n this.plantillasService.obtenerArchivos(\r\n this.propiedad, this.propiedadDeSistema ? '0' : this.authService.getTokenKey('aplicacion'), 'doc;html;jasper;xls;jrxml;odt;xlsm;xlsx;pgp;asc;cer;p12;docx;properties', this.anexoPropiedad, true).subscribe\r\n (rta => {\r\n this.files = rta;\r\n this.filteredFiles = rta\r\n this.loading = false;\r\n if (!this.archivoSeleccionado) {\r\n this.archivoSeleccionado = this.files[0];\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n async aplicarFiltro() {\r\n this.filtroConvertir = this.filterValue;\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.filteredFiles = this.obtenerFiltrosNodos(this.files, this.filterValue);\r\n this.loading = false;\r\n }, 1000);\r\n }\r\n\r\n obtenerFiltrosNodos(nodes: TreeNode[], filterValue: string): TreeNode[] {\r\n\r\n const filters = this.filtroAvanzado(filterValue);\r\n\r\n const filteredNodes: TreeNode[] = [];\r\n\r\n nodes.forEach(node => {\r\n\r\n // Verifica si el nodo actual o alguno de sus hijos cumple con el filtro\r\n const children = node.children ? this.obtenerFiltrosNodos(node.children, filterValue) : [];\r\n\r\n const nodeMatches = filters.some(filter => node.label.includes(filter));\r\n\r\n if (nodeMatches || children.length > 0) {\r\n filteredNodes.push({ ...node, children });\r\n }\r\n });\r\n\r\n return filteredNodes;\r\n }\r\n\r\n filtroAvanzado(search: string): string[] {\r\n\r\n if (search.includes('+')) {\r\n let aux = search;\r\n\r\n if (aux.startsWith('+')) {\r\n aux = aux.substring(1);\r\n }\r\n\r\n aux = aux.replace(/\\+/g, ':');\r\n const items = aux.trim().split(':');\r\n return items;\r\n\r\n } else {\r\n return [search];\r\n }\r\n }\r\n\r\n filtrarEnter(event) {\r\n if (event.key === 'Enter') {\r\n this.aplicarFiltro();\r\n }\r\n }\r\n\r\n seleccionarArchivo(event) {\r\n this.archivoSeleccionado = event.node;\r\n this.mostrarEditor = false;\r\n }\r\n\r\n deseleccionarArchivo($event) {\r\n this.dataSelected = null;\r\n }\r\n\r\n\r\n async cargarNuevo(event, fubauto) {\r\n\r\n this.isVisualizarCrearCaperta = false;\r\n this.archivoSeleccionadoAnexo = event.files[0];\r\n\r\n if (!this.isFormatoValido(this.archivoSeleccionadoAnexo.name)) {\r\n this.toastService.showWarning(\"Se debe agregar un archivo \" + Array.from(this.FORMATS_VALIDOS).join(', '))\r\n fubauto.clear();\r\n //this.toastService.showWarning(\"Se debe agregar un archivo .doc, .docx, .xls, .xlsx , .xlsm, .jrxml, .odt, .jasper, .pgp, .asc, .cer, .properties o .html\");\r\n return;\r\n }\r\n\r\n //Cargar Archivo Temporal\r\n let resultado = await firstValueFrom(this.plantillasService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo));\r\n\r\n fubauto.clear();\r\n\r\n if (resultado?.validacion) {\r\n this.toastService.showSuccess(resultado?.validacion);\r\n return;\r\n }\r\n\r\n let informacionArchivo = resultado?.informacionArchivo ? resultado?.informacionArchivo : null;\r\n\r\n //Obtener Rutas\r\n let rutaComplemento = this.archivoSeleccionado.data;\r\n\r\n //let objeto = (await this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_plantillas\", aplicacion: 1 }).toPromise());\r\n\r\n if (!this.archivoSeleccionado?.parent) {\r\n rutaComplemento = '';\r\n }\r\n\r\n //Verifica si el documento ya existe \r\n let data = await firstValueFrom(this.plantillasService.existeDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));\r\n\r\n if (data?.validacionDocumento) {\r\n this.toastService.showWarning(data?.validacionDocumento);\r\n return;\r\n }\r\n\r\n //Guarda el documento\r\n await firstValueFrom(this.plantillasService.cargarDocumento(this.rutaPrincipal, rutaComplemento, informacionArchivo));\r\n\r\n this.ngOnInit();\r\n\r\n }\r\n\r\n async descargarAnexo() {\r\n\r\n //Ruta archivo \r\n let rutaComplemento = this.archivoSeleccionado.data;\r\n\r\n if (!this.archivoSeleccionado?.parent) {\r\n rutaComplemento = '';\r\n }\r\n\r\n this.cargarArchivoServices.descargarArchivo(this.encriptadoBasico.encriptar(this.rutaPrincipal + rutaComplemento), undefined, undefined).subscribe(blob => {\r\n const a = document.createElement('a');\r\n const objectUrl = URL.createObjectURL(blob);\r\n a.href = objectUrl;\r\n a.download = this.archivoSeleccionado?.label;\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n });\r\n\r\n }\r\n\r\n eliminarArchivo() {\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n key: 'eliminarArchivo',\r\n message: '¿Desea eliminar el registro?',\r\n acceptLabel: 'Si',\r\n icon: 'confirmar',\r\n accept: () => {\r\n this.setEliminarArchivo();\r\n },\r\n reject: () => { },\r\n });\r\n }\r\n\r\n async setEliminarArchivo() {\r\n\r\n //Ruta archivo \r\n let rutaComplemento = this.archivoSeleccionado.data;\r\n\r\n if (!this.archivoSeleccionado?.parent) {\r\n rutaComplemento = '';\r\n }\r\n\r\n let propiedad = 'ruta_plantillas'\r\n await firstValueFrom(this.cargarArchivoServices.eliminarArchivo(this.encriptadoBasico.encriptar(rutaComplemento), propiedad, '1'));\r\n this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\r\n this.archivoSeleccionado = null;\r\n this.filterValue = null;\r\n this.ngOnInit();\r\n }\r\n\r\n isFormatoValido(nombreArchivo: string): boolean {\r\n // Verifica si el archivo termina con alguna de las extensiones válidas\r\n return Array.from(this.FORMATS_VALIDOS).some(ext => nombreArchivo.endsWith(ext));\r\n }\r\n\r\n crearCarpeta() {\r\n this.isVisualizarCrearCaperta = true;\r\n this.nomNuevaCarpeta = null;\r\n }\r\n\r\n async guardarCarpeta() {\r\n\r\n if (this.miFormulario.valid) {\r\n\r\n let rutaComplemento = this.archivoSeleccionado.data;\r\n\r\n if (!this.archivoSeleccionado?.parent) {\r\n rutaComplemento = '';\r\n }\r\n\r\n await firstValueFrom(this.plantillasService.crearCarpeta(this.rutaPrincipal, rutaComplemento, this.nomNuevaCarpeta));\r\n this.toastService.showSuccess('La carpeta se ha creado correctamente');\r\n this.ngOnInit();\r\n\r\n } else {\r\n\r\n this.toastService.showError('Faltan campos obligatorios');\r\n Object.keys(this.miFormulario.controls).forEach((key) => {\r\n if (this.miFormulario.controls[key].invalid) {\r\n this.miFormulario.controls[key].markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n eliminarCarpeta() {\r\n\r\n this.isVisualizarCrearCaperta = false;\r\n\r\n this.confirmationService.confirm({\r\n target: event.target,\r\n key: 'eliminarCarpeta',\r\n message: '¿Desea eliminar el registro?',\r\n acceptLabel: 'Si',\r\n icon: 'confirmar',\r\n accept: () => {\r\n this.setEliminarCarpeta();\r\n },\r\n reject: () => { },\r\n });\r\n }\r\n\r\n async setEliminarCarpeta() {\r\n\r\n let rutaComplemento = this.archivoSeleccionado.data;\r\n\r\n if (!this.archivoSeleccionado?.parent) {\r\n rutaComplemento = '';\r\n }\r\n\r\n this.plantillasService.eliminarCarpeta(this.rutaPrincipal, rutaComplemento).subscribe(rta => {\r\n this.toastService.showSuccess('La carpeta ha sido eliminada correctamente');\r\n this.archivoSeleccionado = null;\r\n this.filterValue = null;\r\n this.ngOnInit();\r\n })\r\n\r\n }\r\n\r\n async convertirArchivos() {\r\n\r\n this.isVisualizarCrearCaperta = false;\r\n this.isMostrarPopupConvertir = true;\r\n //const filteredNodes = this.getFilteredNodes();\r\n const valorFiltro = this.filterValue;\r\n\r\n const sleep = (m) => new Promise((r) => setTimeout(r, m));\r\n await sleep(50);\r\n\r\n this.popupConvertirPlantillasComponent.buscar(this.rutaPrincipal, valorFiltro);\r\n\r\n }\r\n\r\n regresarPopupConvertir($event: any) {\r\n this.isMostrarPopupConvertir = false;\r\n this.ngOnInit();\r\n }\r\n\r\n isHtml() {\r\n this.html = false;\r\n\r\n if (this.archivoSeleccionado != null && this.archivoSeleccionado.label != null && this.archivoSeleccionado.label.includes('.html'))\r\n this.html = true;\r\n\r\n return this.html;\r\n }\r\n\r\n async editarAction() {\r\n\r\n let data = await firstValueFrom(this.plantillasService.consultarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data));\r\n\r\n this.modificarHTML = data;\r\n\r\n this.mostrarEditor = true;\r\n }\r\n\r\n async guardarHtml() {\r\n\r\n await firstValueFrom(this.plantillasService.guardarArchivoHtml(this.rutaPrincipal, this.archivoSeleccionado.data, this.modificarHTML));\r\n\r\n this.toastService.showSuccess('El archivo ha sido modificado correctamente');\r\n\r\n this.ngOnInit();\r\n\r\n }\r\n\r\n regresarPrincipal() {\r\n this.mostrarEditor = false;\r\n }\r\n\r\n public verificarControl(control) {\r\n return this.controlFuncionService.getControlFuncionalidad(control);\r\n }\r\n\r\n}\r\n","<p-confirmPopup key=\"eliminarCarpeta\"></p-confirmPopup>\r\n<p-confirmPopup key=\"eliminarArchivo\"></p-confirmPopup>\r\n\r\n<h1 class=\"mb-4\">{{'cargue' | translate}} {{'plantillas' | translate}}</h1>\r\n\r\n<div class=\"p-fluid p-formgrid grid\">\r\n\r\n <div class=\"field col-12 md:col-6 lg:col-5 card p-5\">\r\n <div class=\"flex justify-content-between align-items-center justify-content-center relative\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"filterValue\" placeholder=\"{{'filtro' | translate}}\"\r\n (keydown)=\"filtrarEnter($event)\" />\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-search text-xl\" (click)=\"aplicarFiltro()\"\r\n class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only absolute right-0 border-none bg-white-alpha-10\"\r\n tooltipPosition=\"bottom\" pTooltip=\"Editar HTML\"></button>\r\n </div>\r\n\r\n <p-tree #tree scrollHeight=\"670px\" [value]=\"filteredFiles\" selectionMode=\"single\" [(selection)]=\"dataSelected\"\r\n [filter]=\"false\" [filterPlaceholder]=\"'filtro' | translate\" filterMode=\"strict\"\r\n (onNodeSelect)=\"seleccionarArchivo($event)\" [loading]=\"loading\"\r\n (onNodeUnselect)=\"deseleccionarArchivo($event)\"></p-tree>\r\n </div>\r\n\r\n <!-- OPCINES DIRECTORIOS - ARCHIVOS -->\r\n <div class=\"field col-12 md:col-6 lg:col-7 p-0 pl-3\">\r\n\r\n @if(!this.loading){\r\n <div class=\"card p-3\">\r\n\r\n <!-- CARPETA -->\r\n @if(archivoSeleccionado.expanded){\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Carpeta: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-between\">\r\n\r\n <!-- Convertir -->\r\n <button type=\"button\" pButton pRipple (click)=\"convertirArchivos()\"\r\n *ngIf=\"verConvertir && controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n tooltipPosition=\"bottom\" label=\"{{'convertir' | translate}}\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n pTooltip=\"Convertir archivo\" tooltipPosition=\"bottom\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-arrow-right-arrow-left color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Nueva Carpeta-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_nuevo' | translate}}\" (click)=\"crearCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-floppy-save color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--Eliminar-->\r\n <button *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\" pButton pRipple\r\n class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarCarpeta()\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!-- Cargar Archivo -->\r\n <div [ngClass]=\"{ 'min-width-100': !verConvertir, 'min-width-20': verConvertir }\">\r\n <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"\r\n chooseLabel=\"{{'link_subirarchivos' | translate}}\" (onSelect)=\"cargarNuevo($event, fubauto)\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"pi pi-trash\"></i>\r\n </div>\r\n </p-fileUpload>\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- ARCHIVO-->\r\n @if(!archivoSeleccionado.expanded){\r\n\r\n <div class=\"flex align-items-center\">\r\n <h1 class=\"text-xl mt-2 mb-4 mr-3\">Archivo: </h1>\r\n <h5 class=\"text-sm mt-2 mb-4\"> {{archivoSeleccionado.label}} </h5>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n @if(archivoSeleccionado.label.includes('.html')){\r\n\r\n <!--EDITAR HTML-->\r\n <button type=\"button\" pButton pRipple icon=\"pi pi-code text-xl color-500\" (click)=\"editarAction()\"\r\n class=\"p-button-outlined boton-accion-principal text-gray-600\" label=\"Editar HTML\">\r\n </button>\r\n }\r\n\r\n <!-- DESCARGAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarAnexo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:descargar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-download color-500\"></i>\r\n </div>\r\n </button>\r\n\r\n <!--ELIMINAR-->\r\n <button pButton pRipple class=\"p-button-outlined boton-accion-principal text-gray-600 color-500\"\r\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarArchivo()\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\">\r\n <div class=\"contenedor-icono-acciones-principal\">\r\n <i class=\"glyphicons glyphicons-bin color-500\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if(archivoSeleccionado.expanded && isVisualizarCrearCaperta){\r\n <div class=\"card\">\r\n\r\n <h5 class=\"mt-2\"><i class=\"glyphicons glyphicons-note\"></i> Nueva carpeta</h5>\r\n\r\n <form #miFormulario=\"ngForm\">\r\n <!-- campos -->\r\n <div class=\"flex mb-3\">\r\n <!-- Nombre -->\r\n <div class=\"w-full p-0 mb-0\">\r\n <span class=\"p-float-label mr-2\">\r\n <input pInputText id=\"id_numero_de_evento\" [(ngModel)]=\"nomNuevaCarpeta\" required\r\n name=\"nombreCarpeta\">\r\n <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex justify-content-end\">\r\n <!--Guardar Carpeta-->\r\n <button pButton pRipple class=\"mr-2 p-button background-100 color-500\"\r\n icon=\"glyphicons glyphicons-floppy-save\" [label]=\"('link_guardar' | translate)\"\r\n (click)=\"guardarCarpeta()\">\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n </div>\r\n }\r\n <!-- EDITOR DE HTML -->\r\n <div *ngIf=\"isHtml() && mostrarEditor\">\r\n\r\n <div class=\"flex justify-content-end align-items-center mb-3\">\r\n <!-- Botón guardar HTML -->\r\n <button pButton pRipple label=\"{{'link_guardar' | translate }}\" (click)=\"guardarHtml()\"\r\n icon=\"glyphicons glyphicons-floppy-save\" class=\"p-button-secondary\"\r\n *ngIf=\"controlFuncionService.getControlFuncionalidad('seguplacor:guardar')\"></button>\r\n </div>\r\n\r\n <p-editor id=\"editor\" [style]=\"{ height: '500px' }\" required [(ngModel)]=\"modificarHTML\"\r\n name=\"htmlPublicacion\"></p-editor>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if(isMostrarPopupConvertir){\r\n<app-popup-convertir-plantillas (regresar)=\"regresarPopupConvertir($event)\"></app-popup-convertir-plantillas>\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpinnerService {\r\n private spinnerSubject = new BehaviorSubject<boolean>(false);\r\n spinner$ = this.spinnerSubject.asObservable();\r\n\r\n show(): void {\r\n this.spinnerSubject.next(true);\r\n }\r\n\r\n hide(): void {\r\n this.spinnerSubject.next(false);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError, TimeoutError, timer } from 'rxjs';\r\nimport { catchError, finalize, timeoutWith } from 'rxjs/operators';\r\nimport { SpinnerService } from '../spinner-service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n\r\n constructor(private spinnerService: SpinnerService) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\r\n var spinnerActivated = false;\r\n var timeElapsed: number = 0;\r\n var intervalId: any; \r\n intervalId = setInterval(() => {\r\n timeElapsed++;\r\n if (timeElapsed > 5 && !spinnerActivated) {\r\n spinnerActivated = true;\r\n this.spinnerService.show();\r\n }\r\n }, 1000);\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n this.spinnerService.hide();\r\n if (intervalId) {\r\n clearInterval(intervalId);\r\n }\r\n })\r\n );\r\n }\r\n \r\n}","//SEGURIDAD\r\nexport * from './src/app/seguridad/modelos/UnionModel';\r\nexport * from './src/app/seguridad/modelos/aplicacion-propiedad-model';\r\nexport * from './src/app/seguridad/modelos/AplicacionModel';\r\nexport * from './src/app/seguridad/modelos/ArchivoPortalModel';\r\nexport * from './src/app/seguridad/modelos/AtributoPuntoModel';\r\nexport * from './src/app/seguridad/modelos/AtributoSSOportalModel';\r\nexport * from './src/app/seguridad/modelos/AuditoriaArchivoModel';\r\nexport * from './src/app/seguridad/modelos/CargueLineaModel';\r\nexport * from './src/app/seguridad/modelos/ColoresRGB';\r\nexport * from './src/app/seguridad/modelos/ComplementoModel';\r\nexport * from './src/app/seguridad/modelos/ComponentePaginaModel';\r\nexport * from './src/app/seguridad/modelos/ConexionModel';\r\nexport * from './src/app/seguridad/modelos/contenidoCorreoModel';\r\nexport * from './src/app/seguridad/modelos/ContenidoHtmlPortalModel';\r\nexport * from './src/app/seguridad/modelos/ControlFuncionModel';\r\nexport * from './src/app/seguridad/modelos/CorreoModel';\r\nexport * from './src/app/seguridad/modelos/CorreoWSModel';\r\nexport * from './src/app/seguridad/modelos/CruceRecursoPuntoModel';\r\nexport * from './src/app/seguridad/modelos/DatoInicioModel';\r\nexport * from './src/app/seguridad/modelos/EjecucionReporteDataModel';\r\nexport * from './src/app/seguridad/modelos/EmpresaModel';\r\nexport * from './src/app/seguridad/modelos/EmpresaSeguridadModel';\r\nexport * from './src/app/seguridad/modelos/EntradaComplementoModel';\r\nexport * from './src/app/seguridad/modelos/EtiquetaModel';\r\nexport * from './src/app/seguridad/modelos/Etiquetas';\r\nexport * from './src/app/seguridad/modelos/FuenteCampoAtributoModel';\r\nexport * from './src/app/seguridad/modelos/FuenteCampoModel';\r\nexport * from './src/app/seguridad/modelos/FuenteDato';\r\nexport * from './src/app/seguridad/modelos/FuenteEntradaModel';\r\nexport * from './src/app/seguridad/modelos/FuenteGeneralModel';\r\nexport * from './src/app/seguridad/modelos/FuenteLineaServicioModel';\r\nexport * from './src/app/seguridad/modelos/FuenteProcesoGeneralModel';\r\nexport * from './src/app/seguridad/modelos/FuenteServicioModel';\r\nexport * from './src/app/seguridad/modelos/FuncionalidadModel';\r\nexport * from './src/app/seguridad/modelos/GeneralModel';\r\nexport * from './src/app/seguridad/modelos/GrupoAccesoModel';\r\nexport * from './src/app/seguridad/modelos/GrupoControlFuncionModel';\r\nexport * from './src/app/seguridad/modelos/GrupoFuenteModel';\r\nexport * from './src/app/seguridad/modelos/GrupoPermisoModel';\r\nexport * from './src/app/seguridad/modelos/ListaServicioModel';\r\nexport * from './src/app/seguridad/modelos/LoginModel';\r\nexport * from './src/app/seguridad/modelos/MensajeSistemaModel';\r\nexport * from './src/app/seguridad/modelos/MenuPortalModel';\r\nexport * from './src/app/seguridad/modelos/ModulosModel';\r\nexport * from './src/app/seguridad/modelos/PaginaPortalModel';\r\nexport * from './src/app/seguridad/modelos/ParametroComponenteModel';\r\nexport * from './src/app/seguridad/modelos/ParametrosGeneralModel';\r\nexport * from './src/app/seguridad/modelos/PermisocontenidoModel';\r\nexport * from './src/app/seguridad/modelos/PermisoFuncionModel';\r\nexport * from './src/app/seguridad/modelos/PeticionModel';\r\nexport * from './src/app/seguridad/modelos/PreguntaSeguridadModel';\r\nexport * from './src/app/seguridad/modelos/PropiedadModel';\r\nexport * from './src/app/seguridad/modelos/PublicacionWebModel';\r\nexport * from './src/app/seguridad/modelos/PuntoProcesoModel';\r\nexport * from './src/app/seguridad/modelos/RecursoPunto';\r\nexport * from './src/app/seguridad/modelos/ReporteBanda';\r\nexport * from './src/app/seguridad/modelos/ReporteColumna';\r\nexport * from './src/app/seguridad/modelos/ReporteColumnario';\r\nexport * from './src/app/seguridad/modelos/ReporteColumnarioMarcador';\r\nexport * from './src/app/seguridad/modelos/ReporteEntradaModel';\r\nexport * from './src/app/seguridad/modelos/ReporteFuenteModel';\r\nexport * from './src/app/seguridad/modelos/ReporteMarcador';\r\nexport * from './src/app/seguridad/modelos/ReporteSoporte';\r\nexport * from './src/app/seguridad/modelos/ReporteTabla';\r\nexport * from './src/app/seguridad/modelos/RespuestaModel';\r\nexport * from './src/app/seguridad/modelos/RolModel';\r\nexport * from './src/app/seguridad/modelos/ServidorCorreoModel';\r\nexport * from './src/app/seguridad/modelos/SistemaMensajeModel';\r\nexport * from './src/app/seguridad/modelos/SitioPortalModel';\r\nexport * from './src/app/seguridad/modelos/TareasModel';\r\nexport * from './src/app/seguridad/modelos/TextoModel';\r\nexport * from './src/app/seguridad/modelos/TipoEtiqueta';\r\nexport * from './src/app/seguridad/modelos/UsuariogrupoModel';\r\nexport * from './src/app/seguridad/modelos/UsuarioModel';\r\n\r\n\r\nexport * from './src/environments/environment';\r\nexport * from './src/app/core/modelos/user.model';\r\nexport * from './src/app/core/errores/authentication.error';\r\n\r\nexport * from './src/app/core/servicios/auth.service';\r\nexport * from './src/app/core/servicios/menu.service';\r\nexport * from './src/app/core/servicios/storage.service';\r\nexport * from './src/app/core/servicios/template.service';\r\nexport * from './src/app/core/servicios/toast.service';\r\nexport * from './src/app/core/servicios/utils.service';\r\nexport * from './src/app/core/servicios/loading.service';\r\nexport * from './src/app/core/servicios/cargar-control-funcionalidad.service'\r\nexport * from './src/app/core/servicios/error-interceptor.service'\r\n\r\n//CORE\r\n\r\nexport * from './src/app/core/plantilla-general/plantilla-general.template';\r\nexport * from './src/app/core/core.module';\r\nexport * from './src/app/core/sharedlib.module';\r\n\r\n//ULTIMA 15\r\nexport * from './src/app/layout/app.layout.module';\r\nexport * from './src/app/layout/app.layout.component';\r\nexport * from './src/app/layout/app.breadcrumb.component';\r\nexport * from './src/app/layout/app.footer.component';\r\nexport * from './src/app/layout/app.menu.component';\r\nexport * from './src/app/layout/app.menuitem.component';\r\nexport * from './src/app/layout/app.menuprofile.component';\r\nexport * from './src/app/layout/app.rightmenu.component';\r\nexport * from './src/app/layout/app.sidebar.component';\r\nexport * from './src/app/layout/app.topbar.component';\r\n\r\n//export * from './src/app/publico/pages/publico.module';\r\n//export * from './src/app/publico/publico-routing.module'\r\nexport * from './src/app/core/componentes/breadcrumb/breadcrumb.component';\r\nexport * from './src/app/core/componentes/footer/footer.component';\r\nexport * from './src/app/core/componentes/menu/menu.component';\r\nexport * from './src/app/core/servicios/guardias/auth.guard';\r\nexport * from './src/app/core/servicios/guardias/publico.guard';\r\nexport * from './src/app/core/servicios/interceptores/token-interceptor.service';\r\n\r\nexport * from './src/app/core/utilidades/color.util';\r\nexport * from './src/app/core/componentes/inicio-component/inicio-component.component';\r\n//export * from './src/app/core/utilidades/translate-loader.util';\r\n\r\n//PUBLICO\r\nexport * from './src/app/publico/pages/login/login.page';\r\nexport * from './src/app/publico/pages/not-found/not-found.page';\r\nexport * from './src/app/publico/pages/timeout/timeout.page';\r\n\r\nexport * from './src/app/publico/pages/seleccion-rol/seleccion-rol.component'\r\n\r\nexport * from './src/app/core/componentes/filtro-general/filtro-general.component';\r\nexport * from './src/app/core/componentes/tabla-general/tabla-general.component';\r\nexport * from './src/app/core/modelos/table-column.model'\r\nexport * from './src/app/core/componentes/carga-pantalla-completa/carga-pantalla-completa.component';\r\nexport * from './src/app/webcommon/webcommon.module';\r\n\r\n\r\n//SERVICES\r\nexport * from './src/app/shared/servicios/general.service';\r\nexport * from './src/app/shared/servicios/cargar-mapas.service';\r\nexport * from './src/app/shared/servicios/parametros-navegacion.service';\r\nexport * from './src/app/webcommon/services/fuentegeneral.service';\r\nexport * from './src/app/shared/servicios/encriptado-basico.service';\r\nexport * from './src/app/webcommon/services/carguelinea.service';\r\nexport * from './src/app/webcommon/services/ejecucionreporte.service';\r\nexport * from './src/app/webcommon/services/fechaUtils.service';\r\nexport * from './src/app/webcommon/services/homologacion.service';\r\nexport * from './src/app/webcommon/services/reportes.service';\r\n\r\n//WEBCOMMON\r\n//fuente general\r\nexport * from './src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component'\r\nexport * from './src/app/webcommon/pages/fuenteGeneral/listado-fuente-general/listado-fuente-general.page'\r\nexport * from './src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page'\r\nexport * from './src/app/webcommon/popups/popup-recurso/popup-recurso.component'\r\nexport * from './src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component'\r\n\r\n//importar fuente general\r\nexport * from './src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component'\r\nexport * from './src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component'\r\n\r\n//ejecucion reporte\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-distribucion-reporte/detalle-distribucion-reporte.component'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-ejecucion-reporte/detalle-ejecucion-reporte.page'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte/listado-ejecucion-reporte/listado-ejecucion-reporte.page'\r\nexport * from './src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component'\r\nexport * from './src/app/webcommon/popups/popup-reporte/popup-reporte.component'\r\nexport * from './src/app/webcommon/popups/popup-sentencia/popup-sentencia.component'\r\nexport * from './src/app/webcommon/services/dashboard.service'\r\nexport * from './src/app/webcommon/pipes/dashboard.pipe'\r\n\r\n//formulario dinamico\r\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormulario'\r\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioCons'\r\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/CampoFormularioNuevo'\r\nexport * from './src/app/core/componentes/formulariodinamico/objetosformulario/HashDirective'\r\nexport * from './src/app/core/componentes/formulariodinamico/formulariodinamico.component'\r\n\r\n//punto proceso\r\nexport * from './src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component'\r\nexport * from './src/app/webcommon/popups/punto-proceso-comp/punto-proceso-comp.component'\r\n\r\n//helpers generales\r\nexport * from './src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component'\r\nexport * from './src/app/core/servicios/data-exporter-table.utils'\r\nexport * from './src/app/webcommon/pipes/fuente.pipe'\r\nexport * from './src/app/webcommon/pipes/reporte-fuente.pipe'\r\n\r\n//fuente reporte\r\nexport * from './src/app/webcommon/pages/fuente-reporte/fuente-reporte.component';\r\nexport * from './src/app/webcommon/popups/popup-sentencia/popup-sentencia.component';\r\n\r\n//plantillas\r\nexport * from './src/app/webcommon/pages/cargue-plantilla/cargue-plantilla-general/cargue-plantilla-general.component';\r\n\r\n//spinner load blockui\r\nexport * from './src/app/core/servicios/spinner-service';\r\nexport * from './src/app/core/servicios/interceptores/loading-interceptor';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UtilsService","i2.StorageService","i3.UtilsService","i3.CargarControlFuncionalidadService","i4","i1.StorageService","MenuService","i3.AuthService","i4.StorageService","i2","i4.UtilsService","i5.ErrorIntecertorService","i6","i1","i2.UtilsService","i1.LayoutService","i2.AuthService","i3","i3.MenuService","i1.MenuService","i2.LayoutService","i3.GeneralPipe","i5.AuthService","i6.MenuService","i7","i9","i11","i2.MenuService","i5.StorageService","i6.UtilsService","i7.CargarControlFuncionalidadService","i8","i10","filter","i4.AuthService","i1.AuthService","i4.ToastService","i3.StorageService","i4.ErrorIntecertorService","i5.UtilsService","i3.ToastService","i6.StorageService","i6.CargarControlFuncionalidadService","i1.LoadingService","i2.ToastService","i5.LoadingService","i7.GeneralPipe","i8.UtilsService","i5","i2.ErrorIntecertorService","i1.GeneralService","i1.FuenteGeneralService","i2.FuentePipe","i4.GeneralService","i5.cargarmapasGlobal","i6.ToastService","i9.UtilsService","i12","i13","i14","i15","i17","i18","i2.cargarmapasGlobal","i4.GeneralPipe","i1.PlantillasService","i1.FuentePipe","i2.GeneralPipe","i3.cargarmapasGlobal","i5.GeneralService","i3.GeneralService","i4.FuentePipe","i5.GeneralPipe","i10.FuenteGeneralService","i12.MenuService","i16","i19","i20","i2.GeneralService","i2.DataExporter","i5.CargueLineaService","i8.MenuService","i9.GeneralPipe","i10.UtilsService","i11.ParametrosNavegacionService","i21","i22","i5.MenuService","i7.UtilsService","i8.CargueLineaService","i5.EjecucionReporteService","i6.GeneralPipe","i8.ReporteFuentePipe","i1.ToastService","i4.DashboardPipe","i6.ReporteFuentePipe","i8.CargarArchivosService","i9.EncriptadoBasicoService","i12.FuentePipe","i13.ReporteColumnarioPipe","i14.EjecucionReporteService","i15.DashboardService","i16.DashboardPipe","i23","i25","i26","i28","i1.EjecucionReporteService","i2.EjecucionReporteService","i7.CargarArchivosService","i9.CargarControlFuncionalidadService","i10.EncriptadoBasicoService","i11.ReporteFuentePipe","i12.GeneralPipe","i24","i7.AuthService","i11.EjecucionReporteService","i13.MenuService","i3.EjecucionReporteService","i6.ParametrosNavegacionService","i2.ReportesService","i5.ToastService","i3.ReportesService","i8.GeneralPipe","i4.CargarControlFuncionalidadService","i8.EncriptadoBasicoService","i1.SpinnerService"],"mappings":"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"}
|